首页 > 解决方案 > 过滤器类中的 shiro 验证问题

问题描述

我正面临shiro的问题。

我们在同一个 weblogic 服务器 12c 上有两个应用程序(两个 WARS)。

一种 WAR 是与 CAS 集成的 UI。第二次战争是泽西休息服务。

我的问题是 UI 已成功验证,并且 JsessionID 在与它们通信时被传递回 Rest Services。
在到达服务之前,我们每次主题有效与否时都编写了一个 shiro 过滤器类。

而且在我们的 UI 中,还要求每一分钟调用一次 Rest Service(一项特定服务)。

问题:每次调用到 shiro 过滤器类时,我们都会得到不同的主题。我尝试从主题打印 sessionId(每次都不同),即使用户在 UI 和后端成功验证,有时用户名显示为空。你能帮忙吗?

Subject subject = getSubject(request, response);

标签: javaweblogicshiro

解决方案


有几件事通常会导致这种情况。

  1. 如果您自己处理登录名(通过subject.login()直接调用类似的东西,而不是让ShiroFilter处理它)
  2. 两个应用程序服务器都在 Shiro 之外管理会话:请参阅https://shiro.apache.org/session-management.html#session-storage

也就是说,我需要更多有关您的应用程序设置方式的详细信息。你的 cookie 是什么样的,你的应用服务器是如何配置的,等等。


推荐阅读