PrincipalExtractor и AuthoritiesExtractor не вызывают - PullRequest
2 голосов
/ 28 апреля 2019

У меня есть простое приложение OAuth2.Я начал с создания SecurityConfig, расширяющего WebSecurityConfigurerAdapter и помеченного @ EnableOAuth2Sso.Я также создал API в контроллере, чтобы проверить, работает ли аутентификация.Принципал вставляется в контроллер и дает правильное имя.

Сейчас я пытаюсь добавить некоторые полномочия для принципала, внедрив AuthoritiesExtractor и создав его как бин.Я также сделал то же самое с PrincipalExtractor, чтобы проверить, работает ли он.Ни один из них не вызывается во время выполнения какого-либо запроса из браузера.

Редактировать: На самом деле выполняется только аутентификация с помощью OIDC, и, следовательно, мой клиент и ресурсы находятся в одном приложении.

// Это мой класс конфигурации безопасности.

@Configuration
@EnableOAuth2Sso
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override
public void configure(HttpSecurity http) throws Exception {
     http
     .antMatcher("/**")
     .authorizeRequests()
       .antMatchers("/login**","/error**")
       .permitAll()
     .anyRequest()
       .authenticated();
}

@Bean
public PrincipalExtractor principalExtractor() {
    return map -> {
        System.out.println("Principal extracted.");
        User user = new User();
        user.setUsername((String)map.get("username"));
        return user;
    };
}

@Bean
public AuthoritiesExtractor authoritiesExtractor() {
    return new PrismAuthoritiesExtractor();
}
}

// И это мой класс AuthoritiesExtractor, определенный отдельно для проверки работоспособности.

public class PrismAuthoritiesExtractor implements AuthoritiesExtractor {

@Override
public List<GrantedAuthority> extractAuthorities(Map<String, Object> map) {
    return AuthorityUtils.commaSeparatedStringToAuthorityList("AUTH1,AUTH2");
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...