日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

SpringBoot配置攔截器方式實例代碼

瀏覽:27日期:2023-05-24 08:56:11

步驟:

1.實現WebMvcConfigurer配置類

2.實現攔截器 3

. 把攔截器添加到配置中

4.添加需要攔截的請求

5.添加需要排除的請求

package com.zp.springbootdemo.interceptor;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;/** * 和springmvc的webmvc攔截配置一樣 * @author zp */@Configurationpublic class WebConfigurer implements WebMvcConfigurer { /** * 攔截器配置 * @param registry */ @Override public void addInterceptors(InterceptorRegistry registry) { // addPathPatterns攔截所有請求,excludePathPatterns排除特殊的請求 //registry.addInterceptor(LoginInterceptor()).addPathPatterns('/**'); registry.addInterceptor(AuthorityInterceptor()).addPathPatterns('/**'); //excludePathPatterns 排除的請求// registry.addInterceptor(LoginInterceptor()).addPathPatterns('/**').excludePathPatterns('/user/**');// registry.addInterceptor(AuthorityInterceptor()).addPathPatterns('/**').excludePathPatterns('/user/**'); } /** * 攔截器一 * @return */ @Bean public LoginInterceptor LoginInterceptor() { return new LoginInterceptor(); } /** * 攔截器二 * @return */ @Bean public AuthorityInterceptor AuthorityInterceptor() { return new AuthorityInterceptor(); }}

基于URL實現的攔截器:

package com.zp.springbootdemo.interceptor;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class LoginInterceptor extends HandlerInterceptorAdapter { /** * 在請求處理之前進行調用(Controller方法調用之前) * 基于URL實現的攔截器 * @param request * @param response * @param handler * @return * @throws Exception */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String path = request.getServletPath(); System.out.println('當前請求路徑:'+path); System.out.println('=========進入攔截器1==================='); if (path.matches(Const.NO_INTERCEPTOR_PATH)) { //不需要的攔截直接過 System.out.println('=========無需攔截==================='); return true; } else { System.out.println('=========開始攔截==================='); // 這寫你攔截需要干的事兒,比如取緩存,SESSION,權限判斷等 String token = request.getParameter('token'); if(token == null){System.out.println('=========攔截完成==================='+false);return false; } System.out.println('=========攔截完成==================='+true); return true; } }}

關鍵代碼:path.matches(Const.NO_INTERCEPTOR_PATH 就是基于正則匹配的url。

package com.zp.springbootdemo.interceptor;/** * @author zp * @explain 常量類 */public class Const { public static final String SUCCESS = 'SUCCESS'; public static final String ERROR = 'ERROR'; public static final String FIALL = 'FIALL'; /**********************對象和個體****************************/ public static final String SESSION_USER = 'loginedAgent'; // 用戶對象 public static final String SESSION_LOGINID = 'sessionLoginID'; // 登錄ID public static final String SESSION_USERID = 'sessionUserID'; // 當前用戶對象ID編號 public static final String SESSION_USERNAME = 'sessionUserName'; // 當前用戶對象ID編號 public static final Integer PAGE = 10; // 默認分頁數 public static final String SESSION_URL = 'sessionUrl'; // 被記錄的url public static final String SESSION_SECURITY_CODE = 'sessionVerifyCode'; // 登錄頁驗證碼 // 時間 緩存時間 public static final int TIMEOUT = 1800;// 秒 public static final String ON_LOGIN = '/logout.htm'; public static final String LOGIN_OUT = '/toLogout'; // 不驗證URL anon:不驗證/authc:受控制的 public static final String NO_INTERCEPTOR_PATH ='.*/((.css)|(.js)|(images)|(login)|(anon)).*';}

測試:

請求地址:http://127.0.0.1:8080/user/getUser?token=123

結果:

SpringBoot配置攔截器方式實例代碼

基于注解的攔截器

①創建注解:

package com.zp.springbootdemo.interceptor;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 在需要登錄驗證的Controller的方法上使用此注解 */@Target({ElementType.METHOD})// 可用在方法名上@Retention(RetentionPolicy.RUNTIME)// 運行時有效public @interface LoginRequired {}

②創建攔截器:

package com.zp.springbootdemo.interceptor;import org.springframework.web.method.HandlerMethod;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.lang.reflect.Method;public class AuthorityInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println('===============進入攔截器2====================='); // 如果不是映射到方法直接通過 if (!(handler instanceof HandlerMethod)) { System.out.println('===============無需攔截====================='); return true; } // ①:START 方法注解級攔截器 HandlerMethod handlerMethod = (HandlerMethod) handler; Method method = handlerMethod.getMethod(); // 判斷接口是否需要登錄 LoginRequired methodAnnotation = method.getAnnotation(LoginRequired.class); // 有 @LoginRequired 注解,需要認證 if (methodAnnotation != null) { // 這寫你攔截需要干的事兒,比如取緩存,SESSION,權限判斷等 System.out.println('===============開始攔截====================='); String token = request.getParameter('token'); if(token == null){ System.out.println('=========攔截完成==================='+false); return false; } System.out.println('=========攔截完成==================='+true); return true; } System.out.println('===============無需攔截==================='); return true; }}

測試接口代碼1:

package com.zp.springbootdemo.system.controller;import com.zp.springbootdemo.interceptor.LoginRequired;import com.zp.springbootdemo.system.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.Map;@RestController@RequestMapping('/user')public class UserController { @Autowired private UserService userService; @GetMapping('/getUser') //@LoginRequired public Map<String,String> getUser(@RequestParam Map<String,String> user){ return userService.getUser(user); }}請求地址:

http://127.0.0.1:8080/user/getUser?token=123

結果:

SpringBoot配置攔截器方式實例代碼

測試接口代碼2:

package com.zp.springbootdemo.system.controller;import com.zp.springbootdemo.interceptor.LoginRequired;import com.zp.springbootdemo.system.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.Map;@RestController@RequestMapping('/user')public class UserController { @Autowired private UserService userService; @GetMapping('/getUser') @LoginRequired public Map<String,String> getUser(@RequestParam Map<String,String> user){ return userService.getUser(user); }}

請求地址:

http://127.0.0.1:8080/user/getUser?token=123

結果:

SpringBoot配置攔截器方式實例代碼

到此這篇關于SpringBoot配置攔截器方式實例代碼的文章就介紹到這了,更多相關SpringBoot配置攔截器內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久精品午夜少妇| 国产精品99久久免费| 日韩.com| 美女久久精品| 国产欧美88| 国产精品毛片| 在线亚洲自拍| 久久高清免费观看| 爽好久久久欧美精品| 蜜桃91丨九色丨蝌蚪91桃色| 久久国产精品久久久久久电车| 国产精品丝袜xxxxxxx| 亚洲欧美日韩高清在线| 9国产精品视频| 鲁大师成人一区二区三区| 亚洲欧洲免费| 欧美精品三级在线| 日本欧美久久久久免费播放网| 日韩二区三区在线观看| 青青在线精品| 五月激激激综合网色播| 日本不卡高清视频| 国产精品久久亚洲不卡| 国产精品一区高清| 天堂成人国产精品一区| 亚洲青青久久| 日本中文字幕不卡| 国产日韩中文在线中文字幕 | 久久在线视频免费观看| 国产色综合网| 一区二区国产在线| 日韩av中文在线观看| 久久精品人人| 久久在线视频免费观看| 石原莉奈在线亚洲三区| 青青青国产精品| 98精品久久久久久久| 亚洲视频综合| 亚洲影院天堂中文av色| 玖玖玖国产精品| 国产精品久久久亚洲一区| 日韩精品电影| 丝袜国产日韩另类美女| 国产精品激情电影| 国产欧美日韩一级| 久久免费国产| 国产精品呻吟| 国产精品久久久免费| 激情欧美一区二区三区| 欧美偷窥清纯综合图区| 国产99久久| 日韩国产欧美一区二区三区| 国产精品蜜芽在线观看| 三级在线观看一区二区| 精品美女在线视频| 亚洲免费高清| 美女精品一区二区| 99在线观看免费视频精品观看| 国产精品一区二区中文字幕| 99精品电影| 国产精品宾馆| 人人草在线视频| 亚洲精品免费观看| 久久天堂精品| 欧美在线精品一区| 欧洲激情综合| 精品久久亚洲| 一本一道久久a久久| 日韩国产一区| 国产日韩欧美一区| 亚洲综合不卡| 欧美激情国产在线| 国产人成精品一区二区三| 激情五月综合| 国产一区调教| 日韩精选在线| 久久人人97超碰国产公开结果| 国产精品一区2区3区| 免费在线看一区| 欧美日韩一区二区综合| 国产不卡精品在线| 7777精品| 视频一区视频二区中文| 日本а中文在线天堂| 国产乱码精品一区二区亚洲| 蜜桃久久精品一区二区| 亚洲一级特黄| 日韩欧美二区| 精品一区二区三区四区五区| 亚洲精品亚洲人成在线观看| 午夜国产精品视频免费体验区| 国产精品一区二区美女视频免费看| 免费人成黄页网站在线一区二区| 亚洲福利国产| 在线手机中文字幕| 久久99影视| 91免费精品国偷自产在线在线| 国产精品腿扒开做爽爽爽挤奶网站| 91精品在线观看国产| av免费不卡国产观看| 国产精品99久久免费观看| 日韩三区四区| 在线看片一区| 蘑菇福利视频一区播放| 一区在线视频观看| 久久精品国内一区二区三区水蜜桃| 久久精品资源| 国产免费av国片精品草莓男男| 亚洲色图综合| 丝袜a∨在线一区二区三区不卡| 午夜精品影院| 国产专区一区| 欧美1区2区3区| 亚洲天堂1区| 精品亚洲美女网站| 鲁鲁在线中文| 韩国精品主播一区二区在线观看| 日韩欧美午夜| 日韩一区欧美| 亚洲www啪成人一区二区| 国产自产自拍视频在线观看| 久久三级毛片| 精品中文字幕一区二区三区 | 日韩av在线中文字幕| 国产91欧美| 色偷偷偷在线视频播放| 国产精品国产一区| 欧美激情国产在线| 国产亚洲一区二区手机在线观看| 久久国产直播| 精品日韩视频| 成人福利av| 91精品蜜臀一区二区三区在线| 99精品网站| 悠悠资源网久久精品| 蜜桃一区二区三区在线| 日本天堂一区| 国产精品久av福利在线观看| 精品国产一区二| 久久国产毛片| 老牛国产精品一区的观看方式| 蜜桃视频一区二区三区在线观看 | 国产模特精品视频久久久久| 日韩中文字幕一区二区三区| 亚洲精品伊人| 日本视频一区二区| 久久伊人亚洲| 老色鬼精品视频在线观看播放| 三上亚洲一区二区| 免费观看久久av| 日韩三级一区| 福利视频一区| 一区二区自拍| 国产欧美日韩一级| 欧洲av不卡| 美国三级日本三级久久99 | 四虎精品一区二区免费| 国产激情精品一区二区三区| 日韩一区自拍| 三级在线观看一区二区| 国产精品资源| 韩国三级一区| 亚洲精品亚洲人成在线观看| 久久影院资源站| 精品一区在线| 国产伦精品一区二区三区在线播放| av免费不卡国产观看| 在线视频免费在线观看一区二区| 日韩精品视频网| 97国产成人高清在线观看| 亚洲一卡久久| 国产福利一区二区精品秒拍| 久久香蕉国产| 91麻豆精品激情在线观看最新| 日本精品黄色| 久久夜色精品| 国产一区二区三区视频在线| 欧美特黄a级高清免费大片a级| 欧美在线看片| 亚洲欧美综合| 国产精品3区| 午夜久久黄色| 美女视频免费精品| 久久久成人网| 日韩欧美四区| 久久久人人人| 国产日本精品| 欧美日韩国产探花| 久久久免费人体| 亚洲一区黄色| 成午夜精品一区二区三区软件| 国产免费成人| 高清一区二区三区av| 亚洲精品动态| 久久精品国产大片免费观看| 国产欧美日韩一区二区三区四区| 欧美日韩国产欧| 国产成人黄色| 亚洲精品亚洲人成在线观看| 欧美日韩一区二区三区视频播放|