日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Springboot未登录请求拦截器实现

發布時間:2023/12/10 javascript 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Springboot未登录请求拦截器实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Springboot未登錄請求攔截器實現

之前用過struts2的同學了解,未登錄請求攔截可以通過自定義Interceptor實現,
在springboot項目中也有對應的解決方案:

  • 自定義Interceptor extends HandlerInterceptorAdapter,重寫preHandle方法
  • 自定義WebMvcConfig實現WebMvcConfigurer接口, 實現addInterceptors方法,添加自定義的攔截器即可**
  • 下面我們來看下具體實現

    LoginHandlerInterceptor實現代碼
    本文承接個人上篇博客中的統一異常處理的方式來處理未登錄返回信息的 https://blog.csdn.net/u014229347/article/details/93183143

    /*** <p>@filename LoginInterceptor</p>* <p>* <p>@description 登錄攔截器</p>** @author llspace* @version 1.0* @since 2019/6/21 10:34**/ @Component public class LoginHandlerInterceptor extends HandlerInterceptorAdapter {@Autowiredprivate UserService userService;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {if(handler instanceof HandlerMethod){String method = ((HandlerMethod) handler).getMethod().getName();if("doLogin".equals(method)){return true;}//登錄判斷User user = getUser(request, response);if(user == null){//未登錄render(response, CodeMsg.NOT_LOGIN);return false;}//將用戶信息設置到UserContext,便于后續使用UserContext.setUser(user);}return true;}private User getUser(HttpServletRequest request, HttpServletResponse response) {//根據系統不同,系統用來管理session的方式也不相同,所以此處獲取user信息的方法就不具體展開實現了//本人是采用token+redis存儲的方式來實現管理的,所以此處是通過token去redis中getUser即可}private void render(HttpServletResponse response, CodeMsg codeMsg)throws Exception {response.setContentType("application/json;charset=UTF-8");OutputStream out = response.getOutputStream();String str = JSON.toJSONString(Result.error(codeMsg));out.write(str.getBytes("UTF-8"));out.flush();out.close();} }

    WebMvcConfig 實現代碼

    /*** <p>@filename WebMvcConfig</p>* <p>* <p>@description Spring MVC配置類</p>** @author llspace* @version 1.0* @since 2019/6/19 17:11**/ @Configuration public class WebMvcConfig implements WebMvcConfigurer {@Autowiredprivate LoginHandlerInterceptor loginHandlerInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(loginHandlerInterceptor);}}

    以上實現均為個人思路,僅供參考, 歡迎一起學習交流

    總結

    以上是生活随笔為你收集整理的Springboot未登录请求拦截器实现的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。