代码拉取完成,页面将自动刷新
4
JWT校验秘钥的问题
已合并
KeyUtil代码中在生成和解析JWT数据的时候使用的salt是字符串格式的,因为会出现一个bug
比如下面的代码,生成的密码是abcdhflor,但是解析的密码是abcdhflor1或者abcdhflor12都可以解析成功
String token = KeyUtil.generateToken("zhangsan", "abcdhflor");
System.err.println(KeyUtil.parserToken("zhangsan", "abcdhflor1", token));
System.err.println(KeyUtil.parserToken("zhangsan", "abcdhflor12", token));
又或者下面也是一样
String token = KeyUtil.generateToken("zhangsan", "abcdhflora");
System.err.println(KeyUtil.parserToken("zhangsan", "abcdhflora1", token));
因此修改为使用byte[]的方式来作为salt,这样就可以修复这个问题
另外建议在生成jwt的时候可以添加一个map参数,用作自定义额外数据的添加