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

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

SpringBoot集成JWT生成token及校驗方法過程解析

瀏覽:17日期:2023-05-25 16:23:29

GitHub源碼地址:https://github.com/zeng-xian-guo/springboot_jwt_token.git

封裝JTW生成token和校驗方法

public class JwtTokenUtil { //公用密鑰-保存在服務端,客戶端是不會知道密鑰的,以防被攻擊 public static String SECRET = 'ThisIsASecret'; //生成Troke public static String createToken(String username) { //簽發時間 //Date iatDate = new Date(); //過地時間 1分鐘后過期 //Calendar nowTime = Calendar.getInstance(); //nowTime.add(Calendar.MINUTE, 1); //Date expiresDate = nowTime.getTime(); Map<String, Object> map = new HashMap(); map.put('alg', 'HS256'); map.put('typ', 'JWT'); String token = JWT.create() .withHeader(map) //.withClaim( 'name','Free碼生') //設置 載荷 Payload //.withClaim('age','12') //.withClaim( 'org','測試') //.withExpiresAt(expiresDate)//設置過期時間,過期時間要大于簽發時間 //.withIssuedAt(iatDate)//設置簽發時間 .withAudience(username) //設置 載荷 簽名的觀眾 .sign(Algorithm.HMAC256(SECRET));//加密 System.out.println('后臺生成token:' + token); return token; } //校驗TOKEN public static boolean verifyToken(String token) throws UnsupportedEncodingException{ JWTVerifier verifier = JWT.require(Algorithm.HMAC256(SECRET)).build(); try { verifier.verify(token); return true; } catch (Exception e){ return false; } } //獲取Token信息 public static DecodedJWT getTokenInfo(String token) throws UnsupportedEncodingException{ JWTVerifier verifier = JWT.require(Algorithm.HMAC256(SECRET)).build(); try{ return verifier.verify(token); } catch(Exception e){ throw new RuntimeException(e); } }}

新建自定義注解:@UserLoginToken

@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public @interface UserLoginToken { boolean required() default true;}

關于攔截器配置:

@Configurationpublic class InterceptorConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(authenticationInterceptor()).addPathPatterns('/**'); // 攔截所有請求,通過判斷是否有 @LoginRequired 注解 決定是否需要登錄 } @Bean public AuthenticationInterceptor authenticationInterceptor() { return new AuthenticationInterceptor(); }}

public class AuthenticationInterceptor implements HandlerInterceptor { @Autowired UserService userService; @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object object) throws Exception { String token = httpServletRequest.getHeader('token');// 從 http 請求頭中取出 token // 如果不是映射到方法直接通過 if(!(object instanceof HandlerMethod)){ return true; } HandlerMethod handlerMethod=(HandlerMethod)object; Method method=handlerMethod.getMethod(); //檢查是否有passtoken注釋,有則跳過認證 if (method.isAnnotationPresent(PassToken.class)) { PassToken passToken = method.getAnnotation(PassToken.class); if (passToken.required()) {return true; } } //檢查有沒有需要用戶權限的注解 if (method.isAnnotationPresent(UserLoginToken.class)) { UserLoginToken userLoginToken = method.getAnnotation(UserLoginToken.class); if (userLoginToken.required()) {// 執行認證if (token == null) { throw new RuntimeException('無token,請重新登錄');}// 驗證 tokenif(JwtTokenUtil.verifyToken(token)){ return true;}else { throw new RuntimeException('401');} } } return true; } @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { }}

登錄:

在Controller上登錄方法不用添加@UserLoginToken自定義注解,其余獲取后臺數據方法加上@UserLoginToken自定義注解,目的驗證token是否有效,是則返回數據,否則提示401無權限。

測試:

@Controller@RequestMapping(path = '/api')public class IndexController { private String prefix = 'index/'; @GetMapping('/index') public String index() { return prefix + 'index'; } @UserLoginToken @PostMapping('/test') @ResponseBody public Object test(){ Map<String,Object> map = new HashMap<>(); map.put('code','200'); map.put('message','你已通過驗證了'); return map; }}

HTTP請求帶上登陸成功后生成token,返回成功:

SpringBoot集成JWT生成token及校驗方法過程解析

HTTP請求帶上無效token或不帶token,返回失敗:

SpringBoot集成JWT生成token及校驗方法過程解析

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品一区二区三区中文字幕| 欧美亚洲国产一区| 91精品国产自产观看在线| 国产伦精品一区二区三区在线播放| 免费亚洲婷婷| 伊人久久成人| 久久一区精品| 综合激情视频| 久久精品国产68国产精品亚洲| 香蕉成人久久| 视频二区不卡| 国产精品99精品一区二区三区∴ | 神马久久午夜| 日韩高清不卡在线| 久久久久网站| 国产在线日韩精品| 日韩av网站在线观看| 欧美sss在线视频| 久久不见久久见免费视频7 | 欧美精选一区二区三区| 国产日韩欧美一区二区三区在线观看 | 日韩欧美中文字幕电影| 亚洲人成亚洲精品| 久久狠狠婷婷| 久久这里只有| 欧美日韩一区自拍| 中文无码日韩欧| 成人精品亚洲| 色在线视频观看| 国产日韩1区| 国产免费播放一区二区| 亚洲免费观看高清完整版在线观| 精品亚洲美女网站| 丝袜美腿诱惑一区二区三区| 丰满少妇一区| 黄色aa久久| 亚洲不卡av不卡一区二区| 欧美成a人免费观看久久| а√天堂8资源在线| 国产精品久久久久久久免费观看| 久久精品国产久精国产| 精品中文字幕一区二区三区| 精品午夜视频| 成人福利视频| 精品五月天堂| 亚洲精品.com| 欧美va天堂在线| 国产精品美女| 日韩二区在线观看| 欧美经典一区| 91看片一区| 在线午夜精品| 欧美日韩一区二区三区不卡视频| 日韩 欧美一区二区三区| 国产精品a级| 久久精品观看| 亚洲精品福利| 91亚洲成人| 免费在线看一区| 亚洲制服欧美另类| 久久影院资源站| 欧美精品羞羞答答| 国产精品一区二区美女视频免费看| 久久中文欧美| 久热精品在线| 国产精品成久久久久| 美女久久网站| 国产精品二区不卡| 美女网站久久| 99热国内精品| 国产精品中文| 91精品久久久久久久久久不卡| 日韩精品电影| 91福利精品在线观看| 日本精品黄色| 国产精品麻豆成人av电影艾秋| 特黄毛片在线观看| 日韩成人精品一区二区三区| 国产一区二区三区久久| 一区二区日韩免费看| 国产精品99一区二区三| 亚洲区国产区| 色综合www| 麻豆一区在线| 日韩精品免费视频人成| 国产精品99免费看| 精品福利久久久| 欧美日韩视频免费看| 99riav1国产精品视频| 欧美亚洲自偷自偷| 亚洲欧美日韩专区| 99精品一区| 福利一区视频| 久久成人av| 国产极品久久久久久久久波多结野| 午夜在线播放视频欧美| 欧美亚洲国产激情| 国产99精品| 久久国产小视频| 香蕉成人av| 欧美日中文字幕| 亚洲二区视频| 人人精品亚洲| 久久中文字幕二区| 国产传媒在线观看| 国产高清亚洲| 久久影院午夜精品| 日韩高清欧美| 视频小说一区二区| 亚洲午夜精品久久久久久app| 日韩欧美中文| 免费久久精品| 日韩中文字幕不卡| 亚洲精品乱码| 国产精品观看| 91亚洲国产高清| 午夜日韩在线| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲精品伊人| 中文字幕亚洲影视| 91精品国产自产精品男人的天堂| 国产精品色婷婷在线观看| 久久不卡日韩美女| 欧美日韩在线二区| 中文字幕成人| 精品视频91| 欧美粗暴jizz性欧美20| 亚洲精品大片| 国产不卡av一区二区| 国产99精品一区| 日韩不卡手机在线v区| 国产精品久久久久久久免费软件| 日本一区二区高清不卡| 欧美日韩国产免费观看视频| 国户精品久久久久久久久久久不卡| 日韩午夜av在线| 久久爱www.| 麻豆精品91| 日韩欧美1区| 91精品美女| 午夜在线精品偷拍| 高清不卡一区| 日本一不卡视频| 99精品在线观看| 精品九九久久| 青草国产精品| 国产精品日本| 日韩在线短视频| 国产精品三级| 亚洲欧美日韩精品一区二区 | 热久久国产精品| 热三久草你在线| 国产精品18| 日韩av午夜在线观看| 美女精品在线观看| 狠狠爱www人成狠狠爱综合网| 久久精品国产网站| 久久国产精品免费一区二区三区| 亚洲第一区色| 亚洲精品**中文毛片| 日日夜夜免费精品| 99视频一区| 国产国产精品| 久久久久久免费视频| 国产aⅴ精品一区二区三区久久| 日韩午夜视频在线| 喷白浆一区二区| 在线观看视频免费一区二区三区| 亚洲午夜黄色| 一区二区视频欧美| 宅男在线一区| 一本一道久久a久久精品蜜桃| 久久高清免费| 日韩午夜精品| 日韩制服丝袜先锋影音| 最新亚洲一区| 99国产成+人+综合+亚洲欧美| 99亚洲视频| 亚洲精品影视| 欧美日韩视频免费看| 国产精品亚洲一区二区在线观看| 国产亚洲字幕| 麻豆久久久久久| 国产色播av在线| 欧美sss在线视频| 99综合视频| 欧美一区自拍| 亚洲三级欧美| 免费人成黄页网站在线一区二区| 日韩精品社区| 国产精品magnet| 国产成人精品免费视| 蜜桃国内精品久久久久软件9| 免费日韩av片| 日韩高清成人在线| 高清日韩中文字幕| 欧美中文一区二区| 亚洲一区区二区| 免费看久久久| 久久麻豆精品|