gpt4 book ai didi

java - Spring Security JWT 验证不使用 UsernamePasswordAuthenticationToken

转载 作者:行者123 更新时间:2023-12-01 16:18:13 25 4
gpt4 key购买 nike

我需要编写自定义 Security Spring 过滤器来验证 JWT token 。

我有我的自定义 JWT validator 。当 token 有效时,我必须授权用户。

我像网上提供的其他一些示例一样实现了这个:

UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = new UsernamePasswordAuthenticationToken(user_id, null, null);

usernamePasswordAuthenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
SecurityContextHolder.getContext().setAuthentication(usernamePasswordAuthenticationToken);

这工作正常,但我的问题是:是否有一个专用的 AuthenticationToken 用于 JWT 验证而不使用 UsernamePasswordAuthenticationToken?

我不喜欢使用 UsernamePasswordAuthenticationToken...这是一个很好的做法吗?

最佳答案

当然,从干净代码的角度来看,它看起来不太好,因为它的名称 UsernamePasswordAuthenticationToken 与对象所做的事情不匹配。 JWT 与密码无关。就像如果您使用“橙色”这个名字来指代“苹果”也会令人困惑。

JWT 通常用作 Bearer token ,并且 spring-security-oauth2-resource-server 提供 BearerTokenAuthenticationToken 。但它会将所有其他 OAuth2 依赖项提取到您的项目中。因此,如果您不需要OAuth2而只需要这个 token 类,只需自己创建一个即可。

关于java - Spring Security JWT 验证不使用 UsernamePasswordAuthenticationToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62348447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com