我正在应用JWT对请求进行身份验证。解析和验证工作在我的Spring Cloud Gateway中。我在SecurityWebFilterChain
上创建了一个自定义过滤器,它解析和验证请求头中的JWT。
我发现它的大多数示例都使用UserDetails来创建身份验证类。
我发现的大多数示例使用UsernamePasswordAuthenticationToken
,我发现它需要UserDetails
。要构建userdetails
,它基本上需要用户名、密码和角色。
但在我的例子中,我不希望每次收到请求时都用用户DB验证我的jwt。此外,我不需要用户的密码,因为我不会验证它一旦我生成令牌。我只想在JWT有效负载中使用用户名和角色。
UserDetails userDetails = User.builder().username(String.valueOf(parsedInfo.get("username")))
.authorities(parsedInfo.get("roles")).password("dummypassword").build();
我认为我的解决方案没有正确地应用Spring Security性。但是如果我不使用UserDetails,那么使用spring Security有什么好处吗?
我的案子还有更好的解决办法吗?
如果只是需要验证JWT令牌,那么可以使用Spring AOP进行验证。
@Aspect
@Component
public class JwtAspect {
@Before("execution(* com.yourpackageName.* (..))")
public void checkJwtToken(JoinPoint joinPoint) {
String jwtTOken = request.getToken();
if (null == jwtToken) {
throw new Exception("Token Not Found. ");
}
parseToken(jwtToken);
joinPoint.proceed();
}
}
如果您得到了令牌,则解析它并检查过期时间。如果以上一切正常,您可以继续joinpoint
。
问题内容: 我的应用程序中有一些内存泄漏。它们都起源于一个特定的视图集群,我花了大量时间进行调整,并尝试减少尽可能多的上下文传递。这使我相信群集中使用的位图就是问题所在。因此,我考虑将WeakReferences用于所有对视图使用的位图的引用。我从未使用过WeakReference,并且不确定这是否是一个好的应用程序。任何机构都可以提供有用的指示或技巧吗? 问题答案: 因此,我考虑将WeakRef
在Kubernetes文档中,它提到使用的缓存语义使得ImagePullPolicy非常高效。我想选择不同的ImagePullPolicy的原因是什么?
本文向大家介绍使用黄瓜有什么好处?,包括了使用黄瓜有什么好处?的使用技巧和注意事项,需要的朋友参考一下 下面列出了使用黄瓜的一些优点- Cucumber是一种开源工具,不需要许可。 黄瓜可以通过Eclipse等IDE轻松配置。 黄瓜弥合了开发人员,测试人员,业务分析师,客户和产品所有者之间的理解和沟通差距。 黄瓜使没有技术知识的业务利益相关者参与其中。 黄瓜提供纯文本表示形式,使团队中的非技术人员
问题内容: 我看到人们正在运行Nginx + Gunicorn + Flask之类的设置。 谁能解释在flask前使用Gunicorn有什么好处?为什么不只运行Flask?运行Gunicorn + Flask会消耗更多资源吗?Gunicorn无法响应时,可以重启Flask实例吗? 将nginx放在gunicorn上还有什么目的? 问题答案: 我认为你可能会感到困惑,Flask不是Web服务器,它是
我为我的应用的用户集合中的每个文档都有一个子集合。此子集合存储与用户相关的文档,但是它们也可以保存到主集合中,每个文档都有一个关联的 userId。 我选择了这种结构,因为它在当时似乎是最明显的,但我可以想象,如果我需要进行数据库维护,它将使事情变得更加困难。例如,如果我想清理这些文档,我必须先查询每个用户,然后再查询每个用户的文档,而如果我有一个主集合,我可以只查询所有文档。 这让我不禁要问,如
问题内容: 我正在浏览以下代码示例: 我想知道使用Iterator接口的实现而不是使用普通的for-each循环有什么好处? 如果此示例不相关,那么当我们应该使用Iterator时会是一个好的情况吗? 谢谢。 问题答案: 该 for-each循环 与Java 5中引入的,所以它不是那么“老”。 如果只想迭代一个集合,则应为每个循环使用 但是有时“普通的” 迭代器的 方法对于检查 迭代器 是否还有更