我检查了很多jwt的教程和示例,例如,如果您在Google中搜索“ spring-security jwt示例”,则可能会看到以下链接:
问题),它们的authFilter使用UserDetailsService,因此它们从数据库中获取数据,因为它只是一个简单令牌,而不是JWT。
所以我想我听不懂。
UPD :我会做什么:
或创建我的自定义身份验证和自定义AuthProvider。
或者仅使用JwtUtil类将解码jwt,然后创建默认的UsernamePasswordAuthToken并将其设置为SecurityContextHolder。
答案 0 :(得分:0)
经过另一次审核,我发现我错过了Rajeev Singh's tutorial on callicoder
中的重要提示请注意,在上述过滤器中命中的数据库是可选的。你可以 还可以在JWT声明中对用户的用户名和角色进行编码,并创建 通过解析来自JWT的那些声明来创建UserDetails对象。那 可以避免数据库命中。
但是,从数据库中加载用户的当前详细信息 可能仍会有所帮助。例如,您可能想禁止登录 如果用户的角色已更改或用户已更新,则使用此JWT 创建此JWT后的密码。