我有一个由 shiro 安全框架生成的会话 ID cookie,它会在每个请求中传递。有没有办法验证会话ID对四郎是否有效。
我通过传递会话ID来尝试下面的代码。
Subject requestedSubject = new Subject.Builder().sessionId(sessionId).buildSubject();
return !(requestedSubject.getSession(false) == null);
获得以下例外
“exceptionClass”: “class java.lang.IllegalArgumentException”, “RESTMethod”: “GET”, “message”: “SessionKey 必须是 HTTP 兼容的实现.”, “rootCausePointClass”: “org.apache.shiro.web.session.mgt.ServletContainerSessionManager”, “rootCausePointMethod”: “getSession”
我做错了什么,或者有没有其他方法来验证会话ID。
你没有给出太多细节,你的确切问题有点不清楚。
shiro管理会话和会话验证,这是框架内置的,你通常不需要关心Shiro如何检查/验证会话的机制。
从问题中不清楚的另一件事是您的技术堆栈。它是一个Web应用程序吗?还有其他第三方库吗,比如Spring?但是这里有一个指南。
请注意,会话(即使是有效会话)并不表示用户已登录或已通过身份验证。
要从shiro获取当前用户:
Subject currentUser = SecurityUtils.getSubject();
然后,要检查这是否是“已知”用户,请检查是否存在非空主体:
User user = (User) currentUser.getPrincipal();
你的问题再次含糊不清,但我希望这能引导你朝着正确的方向前进。
在身份验证等情况下,与会话相比,使用JWTs有什么优势? 它是作为独立方法使用还是在会话中使用?
Apache Kafka:分布式消息传递系统 Apache Storm:实时消息处理 我们如何在实时数据管道中使用这两种技术来处理事件数据? 在实时数据管道方面,我觉得两者做的工作是一样的。如何在数据管道上同时使用这两种技术?
我正在Codeigniter中创建API。在这个API中,我为用户提供了一个登录函数。如果登录成功,我将在CI会话中设置用户数据,并将会话返回给用户。 现在,用户可以使用该会话ID来验证他自己的所有其他请求,如添加/更新/删除。基本上,我希望当用户发送下一个请求时,我可以根据他的会话ID验证他的凭据。 客户请求代码: 上面是一个从客户端到服务器的登录请求示例。在服务器端,服务器验证客户端提供的凭据
我正在将我的应用程序配置为使用apache shiro安全性,但是,我在日志输出中不断收到以下内容: 我的. ini文件目前如下所示: my web.xml中的相关片段如下: 我在tomcat 7容器上使用阿帕奇·希罗1.2,奇怪的是没有这么多问题来解决这个问题,我忽略了什么?
我正在使用Flink从Apache Pulsar读取数据。我在pulsar中有一个分区主题,有8个分区。在本主题中,我生成了1000条消息,分布在8个分区中。我的笔记本电脑中有8个内核,因此我有8个子任务(默认情况下,并行度=#个内核)。在执行Eclipse中的代码后,我打开了Flink UI,发现一些子任务没有收到任何记录(空闲)。我希望所有8个子任务都能得到利用(我希望每个子任务都映射到我的主
我们需要的是直接的API来设置和使用集群消息队列。我们最初的计划是使用Camel在集群JMS或ActiveMQ队列上进行消费/生产。Kafka如何使这项任务变得更容易?在任何一种情况下,应用程序本身都将在WebLogic服务器上运行。 消息传递将是点对点类型,其中有多个相同服务的实例在运行,但根据负载平衡策略,只有一个实例应该处理消息并发出结果。消息队列也是群集的,因此服务实例或队列实例的失败都不
我的web应用程序的当前架构有一个网关服务器,它组织了一系列微服务,授权发生在网关,如果给定的原则被认证,它们可以与一些下游服务对话。 下游服务获取所需的数据,以标识给定的经过身份验证的客户端。然而,Spring证券违约行为开始出现,并引发了预期的: 假定我可以在任何给定的微服务中使用会话id和+XSRF令牌来验证用户是否经过身份验证,并知道哪个用户登录了(我目前使用的是Http Basic)。
我们正在使用Spring安全OAuth2保护REST服务。应用程序可以调用、或终结点。令牌和rest api终结点是无状态的,不需要会话。 我们可以在用户经过身份验证后使会话无效吗?如果是,最好的方法是什么。我们希望用户在调用时始终登录。当前,每当会话存在时,对的调用都会跳过身份验证。