В моем проекте мне нужно изменить 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));
}
.....
Но проблема в том, что когда я открываю любую страницу (даже пользователя / логина), я получаю Запрещено, пожалуйста, авторизуйтесь. Я хочу, чтобы конечная точка авторизации работала только тогда, когда я открываю защищенную страницу как неавторизованный пользователь. Как сделать так? Благодарю.