发表于: 2017-10-31 23:57:31

1 801


今天完成的事情:

准备小课堂.因为要拓展一个基于jwt的Token ,看了其他师兄的小课堂都还没有提及到这一块.  所以深入理解一下.


完成MD5加盐 


因为小课堂要分享Token,,所以这里准备了一个Token工具类..暂时还未实现,,理解的深度不够..

public class JWTToken {
private static Logger log = LoggerFactory.getLogger(JWTToken.class);

   //该方法使用HS256算法和Secret:bankgl生成signKey
   private static Key getKeyInstance() {
//        用我们的ApiKey secret来签署我们的JavaWebToken
       SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
       byte[] apiKeySecretBytes = DatatypeConverter.parseBase64Binary("bankgl");
       Key signingKey = new SecretKeySpec(apiKeySecretBytes, signatureAlgorithm.getJcaName());
       return signingKey;
   }

//使用HS256签名算法和生成的signingKey最终的Token,claims中是有效载荷
   public static String createJavaWebToken(Map<String, Object> claims) {
return Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS256, getKeyInstance()).compact();
   }

//解析Token,同时也能验证Token,当验证失败返回null
   public static Map<String, Object> parserJavaWebToken(String jwt) {
try {
Map<String, Object> jwtClaims =
Jwts.parser().setSigningKey(getKeyInstance()).parseClaimsJws(jwt).getBody();
           return jwtClaims;
       } catch (Exception e) {
log.error("json web token verify failed");
           return null;
       }
}
}


明天计划完成的事情:

小课堂是一件,

小课堂讲过之后将任务五当中漏掉的地方补回来,  

一个注册页面,, 然后是账户密码的比对方式.  更改账户密码比对方式之后使用MD5对其进行加盐.

删除Cookie, 搞完这些可以提交任务.


遇到的困难:

对Token的实现过程中遇到点困难,这段代码的逻辑理不通,应该是少了部分代码


收获:

把token的运行机制理解清楚了.

第一次认证:第一次登录,用户从浏览器输入用户名/密码,提交后到服务器的登录处理的Action层(Login Action);

Login Action调用认证服务进行用户名密码认证,如果认证通过,Login Action层调用用户信息服务获取用户信息(包括完整的用户信息及对应权限信息);

返回用户信息后,Login Action从配置文件中获取Token签名生成的秘钥信息,进行Token的生成;

生成Token的过程中可以调用第三方的JWT Lib生成签名后的JWT数据;

完成JWT数据签名后,将其设置到COOKIE对象中,并重定向到首页,完成登录过程;

任务开始时间2017-10-23

任务结束时间2017-11-05

无延期风险.

禅道;http://task.ptteng.com/zentao/task-view-12685.html



返回列表 返回列表
评论

    分享到