@Override public ConditionOutcome getMatchOutcome( ConditionContext context, AnnotatedTypeMetadata metadata) { Environment environment = context.getEnvironment(); RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(environment, "security.oauth2.resource."); Boolean preferTokenInfo = resolver.getProperty("prefer-token-info", Boolean.class); if (preferTokenInfo == null) { preferTokenInfo = environment .resolvePlaceholders("${OAUTH2_RESOURCE_PREFERTOKENINFO:true}") .equals("true"); } String tokenInfoUri = resolver.getProperty("token-info-uri"); String userInfoUri = resolver.getProperty("user-info-uri"); if (!StringUtils.hasLength(userInfoUri)) { return ConditionOutcome.match("No user info provided"); } if (StringUtils.hasLength(tokenInfoUri) && preferTokenInfo) { return ConditionOutcome.match( "Token info endpoint " + "is preferred and user info provided"); } return ConditionOutcome.noMatch("Token info endpoint is not provided"); }