У меня есть ниже config для проверки access_token из запроса Использование сервера ресурсов API. У меня есть требование для проверки другого access_token, который был установлен в настраиваемом заголовке (Authorization_custom = Bearer blabla ....). Как мне сделать это, используя приведенную ниже конфигурацию для проверки обоих токенов один за другим?
в качестве первого приоритета - проверка заголовка по умолчанию «Authorization: Bearer ....», а во-вторых, проверка пользовательского заголовка «Authorization_custom: Носитель .... »с использованием того же ресурса сервера. Это вообще возможно?
@Configuration
@EnableResourceServer
public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter {
@Autowired
public Environment env;
@Override
public void configure(ResourceServerSecurityConfigurer resources) {
resources.resourceId("sample");
RemoteTokenServices tokenServices = new RemoteTokenServices();
tokenServices.setCheckTokenEndpointUrl(sampleResource().getTokenInfoUri());
tokenServices.setClientId(sampleClient().getClientId());
tokenServices.setClientSecret(sampleClient().getClientSecret());
resources.tokenServices(tokenServices);
resources.authenticationEntryPoint(authenticationEntryPoint());
}
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers(env.getProperty("some.web.base-path") + "/some",
.permitAll().antMatchers("/**")
.authenticated();
}
/** Access the configuration for the token service. */
@Bean
@ConfigurationProperties("some.oauth2.client")
public AuthorizationCodeResourceDetails sampleClient() {
return new AuthorizationCodeResourceDetails();
}
/** Access the configuration for the token validation. */
@Bean
@ConfigurationProperties("some.oauth2.resource")
public ResourceServerProperties sampleResource() {
return new ResourceServerProperties();
}
}
app.yml
some:
oauth2
client:
clientId: some_resource
clientSecret: some_pass
accessTokenUri: some_uri
userAuthorizationUri: some_uri
tokenName: Bearer
authenticationScheme: header
clientAuthenticationScheme: header
scope:
- email
resource:
userInfoUri: some_uri
tokenInfoUri: some_uri