Spring Boot Web安全性:无法针对访问被拒绝的请求重定向到错误页面

时间:2018-08-14 08:14:12

标签: security spring-boot

我试图将所有非登录用户重定向到登录页面。
因此,我希望非登录用户访问/ 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";
    }
}

0 个答案:

没有答案