Spring security 如何在spring boot中手动终止JWT令牌? 让我们考虑一个特殊场景,即管理员(管理员A)登录并开始在系统上执行一些管理操作。突然,另一个管理员(超级管理员)出于某种原因想要将管理员A降级为普通用户。然而,即使现在管理员A只是一个普通用户,他的令牌仍然是管理员令牌。所以,他仍然可以做管理工作,直到令牌在一小时内自动过期

Spring security 如何在spring boot中手动终止JWT令牌? 让我们考虑一个特殊场景,即管理员(管理员A)登录并开始在系统上执行一些管理操作。突然,另一个管理员(超级管理员)出于某种原因想要将管理员A降级为普通用户。然而,即使现在管理员A只是一个普通用户,他的令牌仍然是管理员令牌。所以,他仍然可以做管理工作,直到令牌在一小时内自动过期,spring-security,jwt,jhipster-gateway,Spring Security,Jwt,Jhipster Gateway,那么,在这样的场景中,如何手动使令牌过期?系统是否应该使用DB查询来检查每个管理路由的用户级别?或者有没有其他方法来实现这一点 有没有办法配置核心网关来检查令牌的有效性 我认为,如果我在coregateway中检查每个请求的令牌验证,我们会有很多开销,并且在我看来会破坏使用JWTs的整个目的。我将使用JWTs,它不是为会话或数据的有状态表示而设计的 因此,要么接受这一点,要么用“允许/白名单”进行一些混乱的攻击 备选案文2 使用会话。感谢您的帮助。使用用户帐户和身份验证(UAA)服务器怎么样?因

那么,在这样的场景中,如何手动使令牌过期?系统是否应该使用DB查询来检查每个管理路由的用户级别?或者有没有其他方法来实现这一点

有没有办法配置核心网关来检查令牌的有效性


我认为,如果我在coregateway中检查每个请求的令牌验证,我们会有很多开销,并且在我看来会破坏使用JWTs的整个目的。

我将使用JWTs,它不是为会话或数据的有状态表示而设计的

因此,要么接受这一点,要么用“允许/白名单”进行一些混乱的攻击

备选案文2


使用会话。

感谢您的帮助。使用用户帐户和身份验证(UAA)服务器怎么样?因为JWT根据定义是无状态的,所以不能手动使其过期。使用JWT的最佳方法是使用非常少的验证时间,比如大约15分钟,并在JWT过期时使用刷新令牌刷新JWT。这会留下一个很小的时间窗口,用户仍然拥有一个有效的令牌,但如果这是不可接受的,您可能需要维护一个该令牌的拒绝列表,在该列表中,仍然处于活动状态的令牌将添加到此拒绝列表中,服务器将在每次请求时检查该列表。在这种情况下,使用JWT的灵活性消失了。