authenticationEntryPoint вызывается для каждой страницы, несмотря на allowAll (); - PullRequest
0 голосов
/ 21 марта 2019

В моем проекте мне нужно изменить authenticationEntryPoint, так как я использую OAuth 2, который перенаправляет каждого неавторизованного пользователя для входа в систему через страницу Google, я хочу просто отправить 403 Forbidden для каждого неавторизованного пользователя, который пытается открыть защищенную страницу. Я создал собственный AuthenticationEntryPoint:

public class ForbiddenEntryPoint implements AuthenticationEntryPoint {
@Override
public void commence(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AuthenticationException e) throws IOException, ServletException {
    httpServletResponse.sendError(HttpServletResponse.SC_FORBIDDEN,"Pls,authorize! ");
}
}

Это моя конфигурация безопасности:

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
@EnableOAuth2Sso
public class SecurityConfig extends WebSecurityConfigurerAdapter {
.....
 @Override
public void configure(HttpSecurity http) throws Exception {

    http.csrf().disable();

    http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);

    http.authorizeRequests()//
            .antMatchers("/user/login").permitAll()
            .anyRequest().authenticated();

    http.exceptionHandling().authenticationEntryPoint(new ForbiddenEntryPoint());

    http.apply(new JwtFilterConfiguer(provider));

}
.....

Но проблема в том, что когда я открываю любую страницу (даже пользователя / логина), я получаю Запрещено, пожалуйста, авторизуйтесь. Я хочу, чтобы конечная точка авторизации работала только тогда, когда я открываю защищенную страницу как неавторизованный пользователь. Как сделать так? Благодарю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...