0
봄 부트 버전 작동하지 GitHub의에서 this example을 다음과 같은 여러 리소스를 구성하려고봄 보안 OAuth2를 : 1.5.8.RELEASE 봄의 클라우드 버전 : 여러 ResourceServerConfiguration이
(zuul 사용) Edgware.RELEASE를하고, 할 수있다 ' 그것이 작동하게하지 마라.
내 코드는 다음과 같습니다
class ResourceServerConfigurationFactory
{
static ResourceServerConfiguration criarResourceServerConfiguration(String resourceId, int order,
HttpSecurityConfigurer configurer)
{
ResourceServerConfiguration resource = new ResourceServerConfiguration()
{
// Switch off the Spring Boot @Autowired configurers
public void setConfigurers(List<ResourceServerConfigurer> configurers)
{
super.setConfigurers(configurers);
}
};
resource.setConfigurers(Arrays.<ResourceServerConfigurer>asList(new ResourceServerConfigurerAdapter()
{
@Override
public void configure(ResourceServerSecurityConfigurer resources) throws Exception
{
resources.resourceId(resourceId);
}
@Override
public void configure(HttpSecurity http) throws Exception
{
configurer.configure(http);
}
}));
resource.setOrder(order);
return resource;
}
}
interface HttpSecurityConfigurer
{
public void configure(HttpSecurity http) throws Exception;
}
그리고 내 구성 :
@Configuration
public class OAuthResourceConfiguration
{
@Bean
protected ResourceServerConfiguration usuarioResources()
{
return ResourceServerConfigurationFactory.criarResourceServerConfiguration("usuario", -10,
http -> http.antMatcher("/user").authorizeRequests().anyRequest().permitAll());
}
@Bean
protected ResourceServerConfiguration funcaoResources()
{
return ResourceServerConfigurationFactory.criarResourceServerConfiguration("funcao", -20,
http -> http.antMatcher("/ws").authorizeRequests().anyRequest().permitAll());
}
}
마지막으로, 봄 부팅 응용 프로그램 :
@SpringBootApplication
@EnableResourceServer
@EnableZuulProxy
public class ApiGatewayApplication {
public static void main(String[] args) {
SpringApplication.run(ApiGatewayApplication.class, args);
}
}
현황 :
- Spring은 두 ResourceServerConfiguration 빈을 인스턴스화합니다.
- 높은 순위의 bean 만 작동합니다 (/ user 엔드 포인트는 ok입니다./ws endpoint는 인증을 계속 요청합니다)
- 스프링 로그에서는/user ant matcher 만 사용된다는 것을 알 수 있습니다./ws는 완전히 무시됩니다.
무엇이 잘못 되었습니까?