Spring Security中successHandler无效问题及解决
更新时间:2024年08月01日 15:31:02 作者:一支万宝路
这篇文章主要介绍了Spring Security中successHandler无效问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Spring Security中successHandler无效
原先代码
@Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .anyRequest().authenticated() // 自定义登录页面 .and() .formLogin() .loginPage("/login.html") .successHandler((req, resp, auth) -> { Object principal = auth.getPrincipal(); resp.setContentType("application/json;charset=utf-8"); PrintWriter out = resp.getWriter(); out.write(new ObjectMapper().writeValueAsString(principal)); out.flush(); out.close(); }) .permitAll() // 关闭 csrf .and() .csrf().disable(); }
以上代码运行之后
无论怎么测试,successHandler
都无效,只会返回原来的登录页面,
但是,加入自定义登录接口url
之后,successHandler
又生效:
@Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .anyRequest().authenticated() // 自定义登录页面 .and() .formLogin() .loginPage("/login.html") // 自定义登录接口 .loginProcessingUrl("/doLogin") .successHandler((req, resp, auth) -> { Object principal = auth.getPrincipal(); resp.setContentType("application/json;charset=utf-8"); PrintWriter out = resp.getWriter(); out.write(new ObjectMapper().writeValueAsString(principal)); out.flush(); out.close(); }) .permitAll() // 关闭 csrf .and() .csrf().disable(); }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
java jackson 将对象转json时,忽略子对象的某个属性操作
这篇文章主要介绍了java jackson 将对象转json时,忽略子对象的某个属性操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-10-10SpringBoot连接Nacos集群报400问题及完美解决方法
这篇文章主要介绍了解决SpringBoot连接Nacos集群报400问题 ,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-02-02如何使用Jackson和JSON Pointer查询解析任何JSON节点
本文介绍了JSON Pointer是字符串表达式,可以非常方便解析复杂JSON节点值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-09-09Springboot全局异常捕获及try catch区别解析
这篇文章主要介绍了Springboot全局异常捕获及try catch区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-06-06
最新评论