У меня уже есть сервер аутентификации Spring oauth2, и я планирую создать еще один сервер ресурсов. Однако после того, как я настроил ресурсный сервер с помощью resourceid, я обнаружил, что фактически аутентифицированный resourceid по-прежнему является идентификатором на сервере аутентификации. Что я должен делать? У кого-нибудь была подобная проблема?
сервер аутентификации
clientDetails.setClientId(clientId);
clientDetails.setClientSecret("secret");
String[] agt = "password".split(",");
clientDetails.setAuthorizedGrantTypes(Arrays.asList(agt));
String[] spe = "server".split(",");
clientDetails.setScope(Arrays.asList(spe));
clientDetails.setAccessTokenValiditySeconds(60);
clientDetails.setResourceIds(Arrays.asList("resource-web","myresources"));
return clientDetails;
сервер ресурсов
@EnableGlobalMethodSecurity(securedEnabled = true)
@Configuration
@EnableResourceServer
public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter {
private static final String DEMO_RESOURCE_ID = "resource-api";
@Override
public void configure(ResourceServerSecurityConfigurer resources) {
resources
.resourceId(DEMO_RESOURCE_ID).stateless(true);
}
// OAuth2AuthenticationProcessingFilter
@Override
public void configure(HttpSecurity http) throws Exception {
http.requestMatchers().anyRequest()
.and()
.authorizeRequests()
.antMatchers("/api/USER/**").hasAuthority("ROLE_USER")
.antMatchers("/api/ADMIN/**").hasAuthority("ADMIN");
}
}