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

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

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

瀏覽:19日期: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) { //簽發(fā)時間 //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)//設置過期時間,過期時間要大于簽發(fā)時間 //.withIssuedAt(iatDate)//設置簽發(fā)時間 .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()) {// 執(zhí)行認證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自定義注解,其余獲取后臺數(shù)據(jù)方法加上@UserLoginToken自定義注解,目的驗證token是否有效,是則返回數(shù)據(jù),否則提示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及校驗方法過程解析

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

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩久久精品网| 老色鬼精品视频在线观看播放| 香蕉久久国产| 久久精品国产99久久| 99视频精品| zzzwww在线看片免费| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲午夜av| 久久中文亚洲字幕| 欧美日韩日本国产亚洲在线| 久久在线视频免费观看| 亚洲欧美综合| 国产一区欧美| 在线日韩av| 99久久久久久中文字幕一区| 在线人成日本视频| 日韩免费在线| 日韩欧美看国产| 蜜桃av在线播放| 激情综合网五月| 美女毛片一区二区三区四区| 精品欧美激情在线观看| 99久久www免费| 香蕉成人久久| 日日夜夜免费精品| 日韩国产91| 精品视频网站| 亚洲午夜天堂| 女主播福利一区| 尤物精品在线| 奇米狠狠一区二区三区| 日韩国产在线一| 国产精品一国产精品k频道56| 老司机免费视频一区二区| 久久久亚洲欧洲日产| 中文字幕在线免费观看视频| 人在线成免费视频| 久久男人av| 99久久99久久精品国产片果冰| 欧美高清不卡| 欧美日韩调教| 精品黄色一级片| 亚洲精品一二三区区别| 蜜臀av在线播放一区二区三区 | 综合亚洲自拍| 久久精品女人| 蜜桃国内精品久久久久软件9| 国产精品毛片| 国产精品xxx| 美女精品久久| 日韩视频中文| 日韩精品导航| 美女视频一区在线观看| 久久精品国产99久久| 免费中文字幕日韩欧美| 麻豆传媒一区二区三区| 99tv成人| 久久av国产紧身裤| 少妇精品导航| 欧美日韩国产高清电影| 欧美精品一线| 国产欧美日韩免费观看| 水蜜桃精品av一区二区| 日韩一区二区三区精品| 99国产精品久久久久久久| 亚洲欧美视频| 夜久久久久久| 日韩av资源网| 亚洲欧美日韩高清在线| 欧美久久香蕉| 精品一区二区三区视频在线播放| 一区在线免费| 日韩精品免费观看视频| 手机在线电影一区| 国产精品一线天粉嫩av| 久久精品免费一区二区三区 | 国产精品日韩精品在线播放| 五月激情久久| 美国三级日本三级久久99 | 亚洲美女久久| 播放一区二区| 亚洲乱码视频| 香蕉视频亚洲一级| 一本综合精品| 麻豆91精品视频| 日韩精品社区| 久久婷婷一区| 国产一区二区三区四区| 日韩影院在线观看| 1024精品一区二区三区| 国产丝袜一区| 最新国产精品视频| 色婷婷狠狠五月综合天色拍| 日韩亚洲精品在线观看| 日韩亚洲国产欧美| 水蜜桃久久夜色精品一区| 国产欧美一区二区色老头| 91精品国产调教在线观看| 日韩中文字幕| 麻豆精品网站| 国产一区二区三区成人欧美日韩在线观看| 综合五月婷婷| 激情综合网址| 亚洲深夜视频| 国产麻豆精品| 亚洲无线观看| 美女国产精品| 欧美三级网址| 中文在线а√天堂| 青青青国产精品| 在线国产一区| 蜜桃av.网站在线观看| 国产亚洲一区二区三区啪| 日韩视频免费| 天堂av在线| 综合日韩av| 国产精品欧美三级在线观看| 日韩一区二区三区精品| 国产精品美女| 国产不卡精品| 中文在线а√天堂| 韩国一区二区三区视频| 国产精品白丝av嫩草影院| 亚洲啊v在线免费视频| 亚洲精品系列| 好看的亚洲午夜视频在线| 成人av二区| 99久久久久国产精品| 免费在线亚洲欧美| 激情久久一区二区| 免费观看亚洲天堂| 日韩a一区二区| 欧美成人一二区| 福利一区二区三区视频在线观看| 国产一卡不卡| 亚洲精品在线a| 欧美自拍一区| 欧美视频二区| 精品在线网站观看| 国产精品多人| 水蜜桃久久夜色精品一区| 欧美aⅴ一区二区三区视频| 欧美a在线观看| 国产欧美在线| 国产精品久久亚洲不卡| 精品欠久久久中文字幕加勒比| 国产精品99精品一区二区三区∴| 精品国产欧美日韩| 鲁鲁在线中文| 亚洲免费播放| 久久亚洲美女| 日韩一区精品| 91国内精品| 激情中国色综合| 国产a亚洲精品| 捆绑调教美女网站视频一区| а√天堂8资源中文在线| 国产自产自拍视频在线观看| 国产精品原创| 免费在线小视频| 亚洲经典在线| 西西人体一区二区| 免费成人在线影院| 久久av中文| 精品高清久久| 日韩视频精品在线观看| 国产免费成人| 国产精品蜜月aⅴ在线| 卡一卡二国产精品| 女人av一区| 蜜臀91精品一区二区三区| 国产日韩综合| 国产欧美另类| 国产精品久久久久久妇女| 欧美精品高清| 日韩午夜高潮| 麻豆国产精品| 久久精品在线| 欧美日韩a区| 成人精品视频| 丝袜美腿一区二区三区| 亚洲精品伊人| 亚洲精品极品| 国产理论在线| 日韩一级精品| 久久久久久久久成人| 久久精选视频| 91亚洲精品在看在线观看高清| 偷拍亚洲精品| 四虎4545www国产精品 | 丝袜诱惑制服诱惑色一区在线观看| 日韩高清不卡在线| 日韩精品欧美激情一区二区| 国产亚洲激情| 国产精品亚洲人成在99www| 日韩在线观看一区| 亚洲欧美日韩精品一区二区| 麻豆国产91在线播放| 久久影视一区| 麻豆精品在线观看|