前后端分离中关于springSecurity使用的坑

# 前后端分离中关于springSecurity使用的坑

1.问题抛出:当前后端未分离的时候,我们经常通过后端同时返回数据和页面给前端,但是当前后端分离的时候,我们只能通过Json数据来进行前后端的交互,例如登录授权过程,下面我来给大家讲一个之前踩过的坑:

2.问题出现:前后端分离的登录过程中,我们可以自定义拓展后端security框架内容实现根据不同的登录情况进行不同的数据响应,例如登录成功后我们通过实现AuthenticationSuccessHandler接口对成功内容进行返回({"code":200,"msg":"登录成功"});登录失败时通过实现AuthenticationFailureHandler接口进行数据响应;但是有一种情况可能在前后端分离时出现:当我们未登录,直接请求需要授权的资源时将被框架拦截,我们可以通过实现AuthenticationEntryPoint接口中的commence方法进行未登录操作的数据响应即可,但是经常有朋友会出现postman调试成功,但是浏览器调试失败,并且返回错误码302,而ajax对302错误无感知,会将请求重定向到登录接口的情况。

3.解决方式:一般错误的配置内容是在WebSecurityConfigurerAdapter配置类中添加如下配置:.httpBasic().authenticationEntryPoint(new AuthenticationEntryPoint()),此配置在授权失败的时候将出现重定向错误
正确的配置:.exceptionHandling().authenticationEntryPoint(new AuthenticationEntryPoint()),使用这种配置前后端分离时未登录时将得到后端的响应数据

发布了1 篇原创文章 · 获赞 0 · 访问量 59
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章