最近开始学习springboot,api doc 使用的是swagger2 ,使用jwt作为api保护。期间遇到的一些问题在这里整理一下,希望能帮到大家。
JWT是一种用户双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT(Json Web Token)作为一个开放的标准(RFC 7519),定义了一种简洁的、自包含的方法用于通信双方之间以Json对象的形式进行安全性信息传递,传递时有数字签名所以信息时安全的,JWT使用RSA公钥密钥的形式进行签名。
Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明。另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API。具体效果如下图所示:
我集成jwt的方式并不和网上很多的filter教程一致,我使用的Interceptor。具体继承教程参考:
说下问题吧:
1.创建token是密码设置过于简单,出现java.lang.IllegalArgumentException: secret key byte array cannot be null or empty. 异常
解决方案:修改密码强度 wlt --> wlt-123
验证通过。
这是由于jwt内部参数验证机制导致的问题。
2.如何解决jwt会将token放在head里,在使用swagger测试的时候并不方便的问题。
这样展示效果如图:
总结
本文主要讲解了本人在SpringBoot项目使用swagger暴露resftul接口并加入JWT维护接口安全性时遇到的问题和解决方案。