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

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

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

瀏覽:32日期: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久久,三上悠亚国产精品一区二区三区
涩涩av在线| 一区在线观看| 日韩精品欧美成人高清一区二区| 男女性色大片免费观看一区二区| 亚洲欧美视频一区二区三区| 亚洲欧美久久久| 午夜电影一区| 久久精品国产在热久久| 亚洲最新无码中文字幕久久| 中文字幕系列一区| 午夜在线视频观看日韩17c| 亚洲免费专区| 国产剧情一区| 国产精品porn| 播放一区二区| 丝袜美腿一区二区三区| 欧美日韩亚洲一区三区| 成午夜精品一区二区三区软件| 欧美gv在线| 男人天堂欧美日韩| 国产精品色婷婷在线观看| 中文字幕高清在线播放| 99在线|亚洲一区二区| 青草国产精品| 日本不卡免费高清视频在线| 丝瓜av网站精品一区二区| 免费在线观看一区| 女人av一区| 亚洲精品乱码| 亚洲精品**中文毛片| 亚洲精品在线观看91| 日韩欧美精品一区二区综合视频| 久久精品网址| 日韩中文字幕av电影| 国产一区丝袜| 免费看黄色91| 岛国av免费在线观看| 综合国产在线| 日韩欧美自拍| 日韩中文一区二区| 欧美香蕉视频| 国产日韩欧美在线播放不卡| 亚洲二区精品| 国产日韩欧美三区| 免费精品国产| 国内自拍视频一区二区三区| 在线亚洲欧美| 中文在线а√天堂| 久久国内精品视频| 婷婷激情综合| 国产不卡一区| 日韩精品1区2区3区| 激情自拍一区| 麻豆成全视频免费观看在线看| 日韩激情中文字幕| 亚洲高清不卡| 久久精品国内一区二区三区| 日韩一区二区三区四区五区| 成人看片网站| 国产精品多人| 亚洲美女91| 99成人在线| 亚洲人成在线网站| 久久字幕精品一区| 国产三级一区| 日韩av中文字幕一区| 亚洲一区日韩| 香蕉国产精品| 久久久久国产精品一区三寸| 国产一区福利| 美女视频网站久久| 国产精品片aa在线观看| 日本国产亚洲| 蜜臀va亚洲va欧美va天堂| 99精品视频精品精品视频| 国产成人77亚洲精品www| 国产精品22p| 国产精品九九| 欧美激情aⅴ一区二区三区 | 国产欧美日韩精品高清二区综合区| 黄色日韩在线| 欧美日韩国产在线一区| 国内精品福利| 亚洲天堂黄色| 欧美日一区二区| 久久精选视频| 欧美特黄一级大片| 久久国产亚洲精品| 久久电影tv| 日韩1区2区| 国产精品久久久久久久久久10秀| 欧美国产日本| 另类欧美日韩国产在线| 欧美精品97| 精品国产91| 色爱综合网欧美| 成人台湾亚洲精品一区二区| 精品国产aⅴ| 日韩av有码| 久久久精品日韩| 日韩午夜在线| 亚洲精品韩国| 日本综合精品一区| 欧美精品国产白浆久久久久| 欧美日本二区| 高清一区二区三区av| 亚洲精品永久免费视频| 久久人人88| 蜜臀久久99精品久久久久宅男 | 欧美片网站免费| 麻豆精品在线视频| 超碰成人av| 免费精品国产的网站免费观看| 日韩午夜黄色| 日本成人中文字幕| 精品久久免费| 一级欧洲+日本+国产| 亚洲精品裸体| 精品国产美女a久久9999| 久久精品卡一| 日韩综合小视频| 麻豆精品视频在线观看| 女生影院久久| 蜜臀av性久久久久蜜臀aⅴ流畅| 日本精品另类| 国产aⅴ精品一区二区三区久久| 午夜精品成人av| 亚洲一区日韩| 麻豆91在线播放| 九九综合九九| 91亚洲精品在看在线观看高清| 九九99久久精品在免费线bt| 国产真实久久| 青草国产精品| 日韩欧美精品综合| 亚洲欧洲专区| 欧美天堂视频| 日本成人手机在线| 91精品一区二区三区综合在线爱| 视频一区二区三区在线| 久久99免费视频| 精品日韩毛片| 日韩av一区二区三区| 日韩久久精品| 久久国产麻豆精品| 91成人网在线观看| 美日韩一区二区三区| 一本色道精品久久一区二区三区| 国产精品一区二区av日韩在线| 性欧美xxxx免费岛国不卡电影| 欧美日韩视频免费看| 久久久精品五月天| 国产日本精品| 亚洲主播在线| 色黄视频在线观看| 日韩av一级片| 黑丝一区二区| 久久久久九九精品影院| 视频在线观看一区| 日韩久久电影| 欧美精品不卡| 亚洲影院天堂中文av色| 国产超碰精品| 国产精品任我爽爆在线播放 | 国产一区二区三区四区五区| 国产亚洲毛片| 欧美日韩国产v| 国产午夜久久av| 人人爽香蕉精品| 日韩精品2区| 久久一区亚洲| 欧美日韩一区二区国产| 另类av一区二区| 久久精品在线| 成人一区不卡| 国产精品免费99久久久| 中文字幕一区二区精品区| 亚洲特级毛片| 日韩欧美综合| 精品女同一区二区三区在线观看| 日韩av一级片| 综合五月婷婷| 亚洲欧美日韩国产一区| 国内精品福利| 成人羞羞视频播放网站| 国产一区二区三区精品在线观看| 欧美一区91| 日本不卡视频在线| 午夜亚洲福利| 伊人国产精品| 久久成人国产| 中文一区二区| 国产亚洲午夜| 视频在线观看91| 日韩中文字幕不卡| 免费精品视频在线| 蜜臀精品一区二区三区在线观看 | 美日韩精品视频| 亚洲成人精选| 91久久午夜|