最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java TokenProcessor令牌校驗工具類

 更新時間:2017年03月09日 14:13:00   作者:cnn0314  
這篇文章主要介紹了TokenProcessor令牌校驗工具類 ,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

關(guān)于TokenProcessor令牌校驗工具類廢話不多說了,直接給大家貼代碼了,一切內(nèi)容就在下面一段代碼中,具體代碼詳情如下所示:

public class TokenProcessor {
 private long privious;// 上次生成表單標識號得時間值
 private static TokenProcessor instance = new TokenProcessor();
 public static String FORM_TOKEN_KEY = "FORM_TOKEN_KEY";
 private TokenProcessor() {
 }
 public static TokenProcessor getInstance() {
  return instance;
 }
 /**
  * 驗證請求中得標識號是否有效,如果請求中的表單標識與當前用戶session中的相同,返回結(jié)果true=
  */
 public synchronized boolean isTokenValid(HttpServletRequest request) {
  // 為避免session對象不存在時候創(chuàng)建Session對象
  HttpSession session = request.getSession(false);
  if (session == null) {
   return false;
  }
  String saved = (String) session.getAttribute(FORM_TOKEN_KEY);
  if (saved == null) {
   return false;
  }
  String token = (String) request.getParameter(FORM_TOKEN_KEY);
  if (token == null) {
   return false;
  }
  return saved.equals(token);
 }
 /**
  * 驗證請求中得標識號是否有效,如果請求中的表單標識與當前用戶session中的相同,返回結(jié)果true=
  */
 public synchronized boolean isTokenValid(HttpServletRequest request,String token) {
  // 未避免session對象不存在時候創(chuàng)建Session對象
  HttpSession session = request.getSession(false);
  if (session == null) {
   return false;
  }
  String saved = (String) session.getAttribute(FORM_TOKEN_KEY);
  if (saved == null) {
   return false;
  }
  if (token == null) {
   return false;
  }
  return saved.equals(token);
 }
 /**
  * 清除存儲在當前用戶session中的表單標識號
  */
 public synchronized void reset(HttpServletRequest request) {
  HttpSession session = request.getSession(false);
  if (session == null) {
   return;
  }
  session.removeAttribute(FORM_TOKEN_KEY);
 }
 /**
  * 產(chǎn)生表單標識號并將之保存在當前用戶得session中
  */
 public synchronized void saveToken(HttpServletRequest request) {
  HttpSession session = request.getSession();
  try {
   byte id[] = session.getId().getBytes();
   long current = System.currentTimeMillis();
   if (current == privious) {
    current++;
   }
   privious = current;
   byte now[] = String.valueOf(current).getBytes();
   MessageDigest md = MessageDigest.getInstance("MD5");
   md.update(id);
   md.update(now);
   String token = toHex(md.digest());
   session.setAttribute(FORM_TOKEN_KEY, token);
  } catch (NoSuchAlgorithmException e) {
  }
 }
 /**
  * 將一個字節(jié)數(shù)轉(zhuǎn)換成十六進制得字符串
  */
 public String toHex(byte buffer[]) {
  StringBuffer sb = new StringBuffer(buffer.length * 2);
  for (int i = 0; i < buffer.length; i++) {
   sb.append(Character.forDigit((buffer[i] & 0x60) >> 4, 16));
   sb.append(Character.forDigit(buffer[i] & 0x0f, 16));
  }
  return sb.toString();
 }
}

以上所述是小編給大家介紹的Java TokenProcessor令牌校驗工具類,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • SpringMVC Restful api接口實現(xiàn)的代碼

    SpringMVC Restful api接口實現(xiàn)的代碼

    本篇文章主要介紹了SpringMVC Restful api接口實現(xiàn)的代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Spring Cloud Config與Bus整合實現(xiàn)微服務配置自動刷新功能

    Spring Cloud Config與Bus整合實現(xiàn)微服務配置自動刷新功能

    通過整合SpringCloud Config與Spring Cloud Bus,實現(xiàn)了微服務配置的自動刷新功能,這個機制允許一個微服務實例在配置更新時通過消息總線通知其他所有實例同步更新,從而保持配置的一致性并提升系統(tǒng)的運維效率
    2024-10-10
  • Spring中事務管理的四種方法(銀行轉(zhuǎn)賬為例)

    Spring中事務管理的四種方法(銀行轉(zhuǎn)賬為例)

    這篇文章主要給大家介紹了關(guān)于Spring中事務管理的四種方法,文中是以銀行轉(zhuǎn)賬為例,通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-05-05
  • JAVA的LIST接口的REMOVE重載方法調(diào)用原理解析

    JAVA的LIST接口的REMOVE重載方法調(diào)用原理解析

    這篇文章主要介紹了JAVA的LIST接口的REMOVE重載方法調(diào)用原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • Java深入講解Bean作用域與生命周期

    Java深入講解Bean作用域與生命周期

    這篇文章主要介紹了淺談Spring中Bean的作用域和生命周期,從創(chuàng)建到消亡的完整過程,例如人從出生到死亡的整個過程就是一個生命周期。本文將通過示例為大家詳細講講,感興趣的可以學習一下
    2022-06-06
  • Java8 實現(xiàn)stream將對象集合list中抽取屬性集合轉(zhuǎn)化為map或list

    Java8 實現(xiàn)stream將對象集合list中抽取屬性集合轉(zhuǎn)化為map或list

    這篇文章主要介紹了Java8 實現(xiàn)stream將對象集合list中抽取屬性集合轉(zhuǎn)化為map或list的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • RepeatSubmit若依框架如何防止表單重復提交注解

    RepeatSubmit若依框架如何防止表單重復提交注解

    若依框架中的@RepeatSubmit注解用于防止表單重復提交,通過在控制器方法上添加該注解,并在前端頁面和JavaScript代碼中實現(xiàn)雙重校驗,可以確保同一用戶在短時間內(nèi)不會重復提交相同的表單
    2024-11-11
  • 詳解java 中Spring jsonp 跨域請求的實例

    詳解java 中Spring jsonp 跨域請求的實例

    這篇文章主要介紹了詳解java 中Spring jsonp 跨域請求的實例的相關(guān)資料,jsonp 可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問的問題,需要的朋友可以參考下
    2017-08-08
  • 圖解Java經(jīng)典算法冒泡排序的原理與實現(xiàn)

    圖解Java經(jīng)典算法冒泡排序的原理與實現(xiàn)

    冒泡排序是一種簡單的排序算法,它也是一種穩(wěn)定排序算法。其實現(xiàn)原理是重復掃描待排序序列,并比較每一對相鄰的元素,當該對元素順序不正確時進行交換。一直重復這個過程,直到?jīng)]有任何兩個相鄰元素可以交換,就表明完成了排序
    2022-09-09
  • Java繪圖技術(shù)的詳解及實例

    Java繪圖技術(shù)的詳解及實例

    這篇文章主要介紹了Java繪圖技術(shù)的詳解及實例的相關(guān)資料,這里主要詳解Graphics類的使用,需要的朋友可以參考下
    2017-08-08

最新評論

杂多县| 葵青区| 新龙县| 海南省| 金昌市| 富阳市| 山西省| 嘉峪关市| 建阳市| 富锦市| 平山县| 修文县| 武平县| 清远市| 正蓝旗| 桂林市| 游戏| 遵义县| 兴业县| 吉木乃县| 聊城市| 康定县| 南城县| 织金县| 沅江市| 晋宁县| 镇巴县| 灵丘县| 萨迦县| 通海县| 罗甸县| 张家界市| 泗阳县| 永泰县| 呼玛县| 永昌县| 莱州市| 溧阳市| 辛集市| 临邑县| 青海省|