Главный Экстрактор и Власть Экстрактор не попадает - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть проект с Spring security и Oauth2.

На сервере ресурсов у меня есть следующая конфигурация:

@Configuration
public class SecurityConfiguration extends ResourceServerConfigurerAdapter {    

    @Override
    public void configure(final HttpSecurity http) throws Exception {
        http.antMatcher("/**")
            .authorizeRequests().antMatchers("/info", "/health", "/h2-console/**").permitAll()
            .anyRequest().authenticated()
            .and().headers().frameOptions().disable();
    }    

}

У меня есть следующие экстракторы:

@Component
public class InsurancePrincipalExtractor implements PrincipalExtractor {

    @Override
    public Object extractPrincipal(Map<String, Object> map) {
        return map.get("username");
    }

}

@Component
public class InsuranceAuthoritiesExtractor implements AuthoritiesExtractor {

   @Override
   public List<GrantedAuthority> extractAuthorities(Map<String, Object> map) {
       //Logic
}

Я установил user-info-uri: http://localhost:8081/uaa/v1/me

Проблема в том, что он не затрагивает мои методы извлечения во время выполнения, поэтому ничего не происходит. Как я знаю, мне просто нужно аннотировать его с помощью @Component и Spring, и я буду использовать его автоматически.

UPDATE : Решение найдено. Мне также пришлось добавить это в мою конфигурацию:

@Bean
    protected ResourceServerTokenServices resourceServerTokenServices(ResourceServerProperties sso,
                                                                         OAuth2ClientContext oauth2ClientContext,
                                                                          UserInfoRestTemplateFactory restTemplateFactory) {

            UserInfoTokenServices services = new UserInfoTokenServices(sso.getUserInfoUri(), sso.getClientId());
            services.setRestTemplate(restTemplateFactory.getUserInfoRestTemplate());
            services.setTokenType(sso.getTokenType());

            return services;
        }
...