zoukankan      html  css  js  c++  java
  • 基于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,基于角色权限控制

  • 相关阅读:
    vue跨域代理配置
    vue中引入jquery
    vue中使用特殊字体
    vue中使用mockjs
    vue中使用动态echart图表
    解决win10休眠后无法唤醒
    nvm-windows的安装配置
    黑苹果快捷键
    python基础知识
    如何高效的学习python
  • 原文地址:https://www.cnblogs.com/vhyc/p/7953779.html
Copyright © 2011-2022 走看看