@Override
protected void configure(HttpSecurity http) throws Exception {
// 基于token,所以不需要session
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
//首页所有人可以访问
//请求授权的规则~
// 设置哪些页面可以直接访问,哪些需要验证
http.authorizeRequests()
.antMatchers(Constants.DEFAULT_LOGIN_PAGE, Constants.IMG_CODE_URL).permitAll()
.anyRequest().authenticated()//剩下的所有的地址都是需要在认证状态下才可以访问
.and()
// 过滤登录验证码
//.addFilterBefore(validateCodeFilter, UsernamePasswordAuthenticationFilter.class)
.formLogin()//定制登录页
.loginPage(Constants.DEFAULT_LOGIN_PAGE)
.usernameParameter("username") //账号的请求参数名称
.passwordParameter("password") //密码的请求参数名称
.loginProcessingUrl(Constants.DEFAULT_LOGIN_URL)// 处理认证路径的请求
.successHandler(defaultAuthenticationSuccessHandler) //登录成功处理的事情
.failureHandler(defaultAuthenticationFailureHandler); //登录失败处理的事情
//.and()
//.exceptionHandling().authenticationEntryPoint(authenticationEntryPoint);
// .failureUrl("/loginpage") //登录错误后返回原页面
//.defaultSuccessUrl("/") //指定登录成功后前往的地址
//.permitAll(); //登录界面都可以访问
//注销,开启了注销功能
http.csrf().disable(); //关闭csrf功能
//定制注销的页面
http.logout()
.logoutUrl(Constants.DEFAULT_LOGOUT_URL)
.logoutSuccessUrl(Constants.DEFAULT_LOGOUT_URL);
// 解决不允许显示在iframe的问题
http.headers().frameOptions().disable();
http.headers().cacheControl();
http.addFilterBefore(tokenFilter, UsernamePasswordAuthenticationFilter.class);
}
代码是上面那种方法写的 , 开启 http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
之后,登录页面就一直在刷新。关闭之后就会正常 ,这是什么原因呢