java - 过滤器类中的 shiro 验证问题
问题描述
我正面临shiro的问题。
我们在同一个 weblogic 服务器 12c 上有两个应用程序(两个 WARS)。
一种 WAR 是与 CAS 集成的 UI。第二次战争是泽西休息服务。
我的问题是 UI 已成功验证,并且 JsessionID 在与它们通信时被传递回 Rest Services。
在到达服务之前,我们每次主题有效与否时都编写了一个 shiro 过滤器类。
而且在我们的 UI 中,还要求每一分钟调用一次 Rest Service(一项特定服务)。
问题:每次调用到 shiro 过滤器类时,我们都会得到不同的主题。我尝试从主题打印 sessionId(每次都不同),即使用户在 UI 和后端成功验证,有时用户名显示为空。你能帮忙吗?
Subject subject = getSubject(request, response);
解决方案
有几件事通常会导致这种情况。
- 如果您自己处理登录名(通过
subject.login()
直接调用类似的东西,而不是让ShiroFilter
处理它) - 两个应用程序服务器都在 Shiro 之外管理会话:请参阅https://shiro.apache.org/session-management.html#session-storage
也就是说,我需要更多有关您的应用程序设置方式的详细信息。你的 cookie 是什么样的,你的应用服务器是如何配置的,等等。
推荐阅读
- bots - 如何在没有表单的情况下实施 Google Recaptcha v3?
- javascript - 如何在 Vuex 的 createStore() 中使用 Google Maps 函数?
- reactjs - 在子组件中克隆从父组件传递的对象 - React Hooks
- ruby-on-rails - 在连接表 rails 中指定外键
- ios - Snapchat Snap Kit iOS 登录重定向 URL 在 Safari 上不起作用
- python - while 循环不承认 if 语句
- spring - 如何使用 Spring LDAP 对 LDAP 进行身份验证
- flutter - 多个小部件使用相同的 GlobalKey。动画列表
- javascript - 如何将这个随机图像选择器功能转换为拼接所选图像的功能?
- django - 如何在 Django 中动态创建多级分层表单?