Я пытаюсь использовать один сервер Auth для доступа к нескольким серверам ресурсов от нескольких клиентов.Конфигурация сервера нескольких ресурсов в безопасности Spring OAuth
Я пытаюсь получить доступ к двум серверам ресурсов с одного сервера auth, и моя конфигурация серверов ресурсов идет ниже.
@Bean
@Scope("prototype")
protected ResourceServerConfiguration resource1() {
ResourceServerConfiguration resource = new ResourceServerConfiguration();
resource.setConfigurers(Arrays.<ResourceServerConfigurer> asList(new ResourceServerConfigurerAdapter() {
@Override
public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
resources.resourceId(RESOURCE_ID1).tokenStore(tokenStore);
}
@Override
public void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.requestMatchers().antMatchers("/greeting")
.and()
.authorizeRequests()
.antMatchers("/users").hasRole("ADMIN");
}
}
resource.setOrder(4);
return resource;
}
@Bean
@Scope("prototype")
protected ResourceServerConfiguration resource2() {
ResourceServerConfiguration resource = new ResourceServerConfiguration();
resource.setConfigurers(Arrays.<ResourceServerConfigurer> asList(new ResourceServerConfigurerAdapter() {
@Override
public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
resources.resourceId(RESOURCE_ID2).tokenStore(tokenStore);
}
@Override
public void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.requestMatchers().antMatchers("/welcome")
.and()
.authorizeRequests()
.antMatchers("/users").hasRole("ADMIN");
}
}
resource.setOrder(5);
return resource;
}
Поскольку порядок WebSecurityConfigurerAdapter по умолчанию равно 3, я настроил ордена серверов ресурсов как 4 и 5 соответственно.
Но настроенные Бобы становятся переопределены, и я могу получить доступ к ресурсу «/ прием», который имеет порядок 5 и если я пытаюсь получить доступ к ресурсу «/ приветствие», я получаю следующее сообщение об ошибке,
{ "timestamp": 1444400211270, "status": 403, "error": "Forbidden", "message": "Expected CSRF token not found. Has your session expired?", "path": "/greeting"}
Если я поменять порядок между ресурсами, я могу получить доступ к ресурсу, который имеет максимальное значение 5.
Примечание: у меня есть два клиента, чтобы можно было получить доступ к RESOURCE1 и другой может получить доступ к Resource2.
Прошу прощения за то, что мне не хватает.