JWT春季靴

时间:2020-09-09 12:05:10

标签: spring spring-boot jwt jwt-auth

请消除这个疑问。

我有一个使用JWT具有弹簧安全性的Spring Boot应用程序。

我一直有一个问题:Spring如何存储生成的令牌?

看一下我的tomcat的管理器,我看到此应用程序具有一些开放的会话,但是它仅与JWT一起使用。我没有要求打开会话的地方。

所以我可以假设Spring创建了会话来存储生成的令牌吗?

1 个答案:

答案 0 :(得分:0)

您进行身份验证,然后从发行者处获得令牌。

将此令牌提供给spring服务器时,资源服务器需要先进行多次验证,然后才能使用api。

JWT未加密,它是encoded,这意味着每个人都可以看到和读取其内容。但是它也是signed,因此您不能在不破坏标牌的情况下篡改其内容。

所以服务器要做的第一件事是验证签名,以确保它没有被篡改。这可以通过多种方式完成,一种是获取令牌并将其发送给发行方,然后基本询问“您好此令牌有效吗?”然后发行人说“是”或“ NEY”。

如果需要回传jwts到第四次进行验证,这会产生大量额外的网络流量。

由于令牌的签名是通过非对称加密完成的,因此资源服务器可以定期(例如,每30分钟)向发行者询问公钥,以便它可以验证令牌本身,而无需经常询问令牌是否有效或无效。不是。

此密钥通常以称为JWK(Json Web密钥)的格式发送,然后用于验证完整性。如果此验证通过,则它可以信任jwts内容,并开始检查验证日期,范围和其中的任何其他声明等。

然后,如果令牌有效尚未过期,则可以选择从jwt中的数据构造UserDetails对象。

如评论中所述。如果使用JWT,则无需会话。 您应该禁用会话创建。

您可以在Spring Security Session

上阅读有关本文中会话的更多信息。

在这里您可以了解有关春季安全性Session Managment