我试图将所有非登录用户重定向到登录页面。
因此,我希望非登录用户访问/ myPage时,他们将重定向到登录页面。
但是Spring Boot只是返回了我的“ error.html”页面,即使它没有转到@ExceptionHandler。
而且控制台中没有显示任何异常日志,因此我不知道出了什么问题。
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.headers().frameOptions().disable()
.and().authorizeRequests()
.antMatchers("/login", "/logout").permitAll()
.antMatchers("/myPage").hasAuthority(AccountRole.NORMAL_USER.getCode())
.antMatchers("/admin").hasAuthority(AccountRole.ADMIN_USER.getCode())
.and().exceptionHandling().accessDeniedPage("/login")
.and().logout().logoutUrl("/logout").logoutSuccessUrl("/login");
}
}
@Controller
public class HomePageController {
@RequestMapping(path = "login")
public String login() {
System.out.println(SecurityContextHolder.getContext().getAuthentication());
return "login";
}
@RequestMapping(path = "myPage")
public String myPage() {
return "myPage";
}
@ExceptionHandler // is not accessing this method
public String error(Exception e) {
System.out.println(e.getClass());
return "error";
}
}