Update to latest 1.3 code
This commit is contained in:
parent
53f67a448f
commit
5468949a55
|
|
@ -373,7 +373,7 @@ public class CrshAutoConfigurationTests {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public AccessDecisionManager shellAccessDecisionManager() {
|
public AccessDecisionManager shellAccessDecisionManager() {
|
||||||
List<AccessDecisionVoter<? extends Object>> voters = new ArrayList<AccessDecisionVoter<? extends Object>>();
|
List<AccessDecisionVoter> voters = new ArrayList<AccessDecisionVoter>();
|
||||||
RoleVoter voter = new RoleVoter();
|
RoleVoter voter = new RoleVoter();
|
||||||
voter.setRolePrefix("");
|
voter.setRolePrefix("");
|
||||||
voters.add(voter);
|
voters.add(voter);
|
||||||
|
|
|
||||||
|
|
@ -18,12 +18,16 @@ package org.springframework.boot.autoconfigure.condition;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.context.annotation.Condition;
|
import org.springframework.context.annotation.Condition;
|
||||||
import org.springframework.context.annotation.ConditionContext;
|
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.AnnotatedTypeMetadata;
|
||||||
import org.springframework.core.type.AnnotationMetadata;
|
import org.springframework.core.type.AnnotationMetadata;
|
||||||
import org.springframework.core.type.ClassMetadata;
|
import org.springframework.core.type.ClassMetadata;
|
||||||
import org.springframework.core.type.MethodMetadata;
|
import org.springframework.core.type.MethodMetadata;
|
||||||
|
import org.springframework.core.type.StandardAnnotationMetadata;
|
||||||
import org.springframework.util.ClassUtils;
|
import org.springframework.util.ClassUtils;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
|
|
@ -38,6 +42,18 @@ public abstract class SpringBootCondition implements Condition {
|
||||||
|
|
||||||
private final Log logger = LogFactory.getLog(getClass());
|
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
|
@Override
|
||||||
public final boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
|
public final boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
|
||||||
String classOrMethodName = getClassOrMethodName(metadata);
|
String classOrMethodName = getClassOrMethodName(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.ConditionalOnClass;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
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.condition.SpringBootCondition;
|
||||||
import org.springframework.boot.autoconfigure.security.SecurityProperties;
|
import org.springframework.boot.autoconfigure.security.SecurityProperties;
|
||||||
import org.springframework.boot.autoconfigure.security.oauth2.ClientCredentialsProperties;
|
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.context.annotation.Import;
|
||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
||||||
import org.springframework.core.type.AnnotatedTypeMetadata;
|
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.config.annotation.web.builders.HttpSecurity;
|
||||||
import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerEndpointsConfiguration;
|
import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerEndpointsConfiguration;
|
||||||
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
|
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
|
||||||
|
|
@ -111,11 +109,6 @@ public class SpringSecurityOAuth2ResourceServerConfiguration {
|
||||||
protected static class ResourceServerCondition extends SpringBootCondition implements
|
protected static class ResourceServerCondition extends SpringBootCondition implements
|
||||||
ConfigurationCondition {
|
ConfigurationCondition {
|
||||||
|
|
||||||
private OnBeanCondition condition = new OnBeanCondition();
|
|
||||||
|
|
||||||
private StandardAnnotationMetadata beanMetaData = new StandardAnnotationMetadata(
|
|
||||||
ResourceServerCondition.class);
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ConfigurationPhase getConfigurationPhase() {
|
public ConfigurationPhase getConfigurationPhase() {
|
||||||
return ConfigurationPhase.REGISTER_BEAN;
|
return ConfigurationPhase.REGISTER_BEAN;
|
||||||
|
|
@ -143,9 +136,9 @@ public class SpringSecurityOAuth2ResourceServerConfiguration {
|
||||||
.isPresent(
|
.isPresent(
|
||||||
"org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerEndpointsConfiguration",
|
"org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerEndpointsConfiguration",
|
||||||
null)) {
|
null)) {
|
||||||
if (this.condition.matches(context, this.beanMetaData)) {
|
if (SpringBootCondition.evaluateForClass(ResourceServerCondition.class, context)) {
|
||||||
return ConditionOutcome
|
return ConditionOutcome
|
||||||
.match("found authorization server configuration");
|
.match("found authorization server endpoints configuration");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ConditionOutcome
|
return ConditionOutcome
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue