基於jwt和角色的訪問控制解決方案


0,主要解決兩個問題:1身份驗證(防止httpclient拼接請求),2權限控制

1,身份驗證使用jwt,在java就是jjwt

  jwt可以比較好的整合restful,對無狀態客戶端比較友好,(用session和cookie是有狀態的,session由服務器維護,如果項目大了使用了分布式,

  就一個session綁在一台特定的服務器上,不能很好的均衡負載

流程圖:

jwt  quick start

Key key = MacProvider.generateKey();

String compactJws = Jwts.builder()
  .setSubject("Joe")
  .signWith(SignatureAlgorithm.HS512, key)
  .compact();

上面的compactJws就會產生下面的token

eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJKb2UifQ.yiV1GWDrQyCeoOswYTf_xvlgsnaVVYJM0mU6rkmRBf2T1MBl3Xh2kZii0Q9BdX5-G0j25Qv2WF4lA6jPl5GKuA

驗證:

try {

    Jwts.parser().setSigningKey(key).parseClaimsJws(compactJws);

    //OK, we can trust this JWT

} catch (SignatureException e) {

    //don't trust the JWT!
}

2,基於角色權限控制

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM