springsecurity記住我登錄時訪問無權(quán)限接口跳轉(zhuǎn)登錄界面的處理方案
貼一下springsecurity無權(quán)限時異常處理的邏輯
- 未登錄狀態(tài):如果用戶嘗試訪問需要認證的資源但未登錄,即未經(jīng)過認證,在這種情況下應該跳轉(zhuǎn)到登錄頁面或者返回登錄提示,讓用戶進行身份驗證。通過調(diào)用 AuthenticationEntryPoint 可以統(tǒng)一處理未登錄狀態(tài)下的跳轉(zhuǎn)邏輯,確保用戶體驗一致性。
- 記住我狀態(tài):用戶可能選擇了“記住我”功能,在記住我狀態(tài)下,用戶的會話仍然有效,但并沒有進行實際的身份驗證。如果用戶在記住我狀態(tài)下訪問需要認證的資源,也應該跳轉(zhuǎn)到登錄頁面進行實際的身份驗證,而不是直接拒絕訪問。通過調(diào)用 AuthenticationEntryPoint 可以統(tǒng)一處理記住我狀態(tài)下的跳轉(zhuǎn)邏輯,提高系統(tǒng)的安全性和用戶體驗。
這就是springsecurity對于記住我的處理邏輯,我想要通過記住我登錄的時候,訪問無權(quán)限接口依然調(diào)用AccessDeniedHandler拋出無權(quán)限,下面是我的處理方案。
1.在自定義AuthenticationEntryPoint 指出authException instanceof InsufficientAuthenticationException異常返回無權(quán)限。
@Component @Slf4j public class MyAuthenticationEntryPoint implements AuthenticationEntryPoint { @Autowired ObjectMapper objectMapper; @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException { response.setContentType("text/html;charset=UTF-8"); log.warn("", authException); if (authException instanceof InsufficientAuthenticationException) { response.getWriter().write(objectMapper.writeValueAsString(R.error().code(HttpStatus.FORBIDDEN.value()).message("無權(quán)限!"))); }else { response.getWriter().write(objectMapper.writeValueAsString(R.error().code(HttpStatus.UNAUTHORIZED.value()).message("未登錄!"))); } } }
2.在配置類里定義http.anonymous().disable()//禁止匿名用戶,防止未通過身份認證的用戶進行鑒權(quán),從而拋出InsufficientAuthenticationException。
到此這篇關(guān)于springsecurity記住我登錄時訪問無權(quán)限接口,跳轉(zhuǎn)登錄界面的文章就介紹到這了,更多相關(guān)springsecurity跳轉(zhuǎn)登錄界面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- springsecurity實現(xiàn)用戶登錄認證快速使用示例代碼(前后端分離項目)
- SpringSecurity自定義資源攔截規(guī)則及登錄界面跳轉(zhuǎn)問題
- 解決springSecurity 使用默認登陸界面登錄后無法跳轉(zhuǎn)問題
- SpringSecurity表單配置之登錄成功及頁面跳轉(zhuǎn)原理解析
- SpringSecurity?默認登錄認證的實現(xiàn)原理解析
- SpringSecurity默認登錄頁的使用示例教程
- SpringSecurityOAuth2實現(xiàn)微信授權(quán)登錄
- SpringSecurity實現(xiàn)前后端分離登錄token認證詳解
- springSecurity實現(xiàn)簡單的登錄功能
- SpringSecurity自定義登錄成功處理
- SpringSecurity多表多端賬戶登錄的實現(xiàn)
相關(guān)文章
Spring內(nèi)存緩存Caffeine的基本使用教程分享
Caffeine作為當下本地緩存的王者被大量的應用再實際的項目中,可以有效的提高服務吞吐率、qps,降低rt,本文就來簡單介紹下Caffeine的使用姿勢吧2023-03-03Java數(shù)據(jù)結(jié)構(gòu)之隊列(動力節(jié)點Java學院整理)
隊列(Queue)是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表。 這篇文章詳細給大家介紹了java數(shù)據(jù)結(jié)構(gòu)之隊列,感興趣的朋友跟隨小編一起學習吧2017-04-04