【发布时间】:2021-08-20 02:47:19
【问题描述】:
在我的应用程序中,我只更新了 Shiro 库,从 shiro-all-1.2.6.jar 到 shiro-all-1.3.0.jar。除了引用新 Shiro 库的构建路径之外,我没有更改任何其他库或配置文件。
日志显示用户确实登录了,但服务器端在 shiro 登录后就无法访问了。
试图弄清楚 1.2.6 和 1.3.0 之间发生了什么变化,以及我需要更改哪些设置,以使应用程序像以前一样工作。
非常感谢! -阿丽娜。
【问题讨论】:
-
嗨@afrey!您能否在这篇文章中添加更多详细信息,您在日志中看到的错误,服务器返回的响应代码。您所说的“构建路径”是指手动管理工件还是通过 Maven 或 Gradle 等构建工具管理工件? SO 在如何提出更好的问题上有很好的资源:@987654321@
-
在 Eclipse 中使用 ANT 构建。
-
只要我修改了 Shiro.ini 中的 URL 以反映路径开头没有斜杠“/”的路径,我就能够访问服务器端:[urls]
/ FileUploadServlet = authc /FileDownloadServlet = authc /UserUnloadServlet = authc /soa_service = authc /data_update = authc /data_view = authc /load_lists = authc /error_services = authc /query_db = authc .html = authc -
另一个发现是 currentUser.isAuthenticated() 在 Shiro 1.2.6 中返回 TRUE,在 Shiro 1.3.0 中返回 FALSE。这就是我的应用程序没有加载的原因。这是用于此的代码:Subject currentUser = SecurityUtils.getSubject(); if (currentUser.isAuthenticated()) { return true; } 否则 { 返回错误;此外,currentUser.getPrincipal() 使用 shiro 1.3.0 返回 null,而返回使用 shiro 1.2.6 的登录用户。所以,我必须弄清楚是否需要以不同的方式调用当前用户,或者我的 shiro.ini 中是否需要更改一些内容。
-
你试过调高 Shiro 的日志吗? 'org.apache.shiro'。如果您也需要,您可以将其调高到 TRACE。
标签: shiro