Commit 5468949a authored by Dave Syer's avatar Dave Syer

Update to latest 1.3 code

parent 53f67a44
......@@ -373,7 +373,7 @@ public class CrshAutoConfigurationTests {
@Bean
public AccessDecisionManager shellAccessDecisionManager() {
List<AccessDecisionVoter<? extends Object>> voters = new ArrayList<AccessDecisionVoter<? extends Object>>();
List<AccessDecisionVoter> voters = new ArrayList<AccessDecisionVoter>();
RoleVoter voter = new RoleVoter();
voter.setRolePrefix("");
voters.add(voter);
......
......@@ -18,12 +18,16 @@ package org.springframework.boot.autoconfigure.condition;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.context.annotation.Conditional;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.core.type.AnnotatedTypeMetadata;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.core.type.ClassMetadata;
import org.springframework.core.type.MethodMetadata;
import org.springframework.core.type.StandardAnnotationMetadata;
import org.springframework.util.ClassUtils;
import org.springframework.util.StringUtils;
......@@ -37,6 +41,18 @@ import org.springframework.util.StringUtils;
public abstract class SpringBootCondition implements Condition {
private final Log logger = LogFactory.getLog(getClass());
public static boolean evaluateForClass(Class<?> annotated, ConditionContext context) {
Conditional conditional = AnnotationUtils.findAnnotation(annotated, Conditional.class);
StandardAnnotationMetadata metadata = new StandardAnnotationMetadata(annotated);
for (Class<? extends Condition> type : conditional.value()) {
Condition condition = BeanUtils.instantiateClass(type);
if (condition.matches(context, metadata)) {
return true;
}
}
return false;
}
@Override
public final boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
......
......@@ -22,7 +22,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.autoconfigure.condition.OnBeanCondition;
import org.springframework.boot.autoconfigure.condition.SpringBootCondition;
import org.springframework.boot.autoconfigure.security.SecurityProperties;
import org.springframework.boot.autoconfigure.security.oauth2.ClientCredentialsProperties;
......@@ -36,7 +35,6 @@ import org.springframework.context.annotation.ConfigurationCondition;
import org.springframework.context.annotation.Import;
import org.springframework.core.env.Environment;
import org.springframework.core.type.AnnotatedTypeMetadata;
import org.springframework.core.type.StandardAnnotationMetadata;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerEndpointsConfiguration;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
......@@ -111,11 +109,6 @@ public class SpringSecurityOAuth2ResourceServerConfiguration {
protected static class ResourceServerCondition extends SpringBootCondition implements
ConfigurationCondition {
private OnBeanCondition condition = new OnBeanCondition();
private StandardAnnotationMetadata beanMetaData = new StandardAnnotationMetadata(
ResourceServerCondition.class);
@Override
public ConfigurationPhase getConfigurationPhase() {
return ConfigurationPhase.REGISTER_BEAN;
......@@ -143,9 +136,9 @@ public class SpringSecurityOAuth2ResourceServerConfiguration {
.isPresent(
"org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerEndpointsConfiguration",
null)) {
if (this.condition.matches(context, this.beanMetaData)) {
if (SpringBootCondition.evaluateForClass(ResourceServerCondition.class, context)) {
return ConditionOutcome
.match("found authorization server configuration");
.match("found authorization server endpoints configuration");
}
}
return ConditionOutcome
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment