【发布时间】:2020-10-10 20:22:58
【问题描述】:
我遇到了 shiro 的问题。
我们在同一个 weblogic server 12c 上有两个应用程序(两个 WARS)。
一个 WAR 是与 CAS 集成的 UI。 第二次战争是 Jersey Rest 服务。
我的问题是 UI 验证成功,并且 JsessionID 在与休息服务通信时被传递回休息服务。
在使用该服务之前,我们每次主题有效与否时都编写了一个 shiro 过滤器类。
而且在我们的 UI 中,还要求每分钟调用一次 Rest Service(一项特定服务)。
问题:每次调用到 shiro 过滤器类时,我们都会得到不同的主题。我尝试从主题打印 sessionId(每次都不同),即使用户在 UI 和后端成功验证,有时用户名显示为空。你能帮忙吗?
Subject subject = getSubject(request, response);
【问题讨论】:
-
以下是以上几点的答案。正如我上面解释的,对于 SSO,我们使用 CAS(单独的 WAR 文件),对于 UI 是我们使用的 SAP-UI(单独的 WAR),Jersey Rest Applications(单独的 WAR)。并且还在 UI 和 RestServices 应用程序中使用 Shiro 过滤器。首先我们登录 CAS 并路由到 UI 应用程序。接下来在登陆 UI 主页之前,通过传递 JSESSIONID 对 Rest Service Application 进行 rest 调用。 JSESSIONID=eHfWJtvzffTVUkh3dtggAfBgW5ptO4LtyT9H_E3Dhj1g9S-y4-Iq!1826731146 1 没有登录,只有 org.apache.shiro.web.servlet.ShiroFilter 2. 没有单独的会话管理
-
1. org.apache.shiro.web.servlet.ShiroFilter 我们只使用这个过滤器,没有subject.login。 2 没有单独的会话管理,根据您计划使用 EhCache 的文档,并会让您知道结果。如果有任何更正或建议请提供
-
亲爱的,感谢您回答我的问题
-
还有一件事是我们使用的是weblogic 12.2.1.3集群环境