【问题标题】:Apache Shiro anon filter not workingApache Shiro 匿名过滤器不起作用
【发布时间】:2014-02-19 04:50:10
【问题描述】:

我有一个项目,我正在尝试使用 Apache Shiro 来实现安全层。在大多数情况下,它似乎工作得很好。到目前为止,我一直在使用“authc”过滤器,并且一直在按预期工作。但是,我想将 login.jsp 移动到没有任何严格安全要求的不同公用文件夹。

以下是相关的 shiro.ini 文件条目。

shiro.loginUrl = /public/pages/login.jsp

jdbcRealm = ...
:
:

ds = ...
:
:
jdbcRealm.dataSource = $ds

[users]
[roles]
[urls]
/public/**  = anon
/secure/**  = authc
/logout     = logout

当 /public/** = authc 或 anon 时,我可以尝试直接转到 /secure URL 下的页面,并且会正确转到 login.jsp 页面。查看。检查。

在 login.jsp 页面上填写用户名和密码并提交表单后,事情就崩溃了……

如果是/public/** = authc,那么我将被带到我试图在 /secure url 中访问的原始页面。这样就行了。

如果/public/** = anon,那么 login.jsp 将被重新加载。我没有被发送到我最初尝试访问的 /secure 目录中的页面。如果我没有为/public/** URL 模式输入条目,也会发生同样的事情。

我似乎缺少一些 Shiro 基础知识。如果您需要查看项目中的其他内容,我已在此处将其上传到 BitBucket。

https://tfeinstein@bitbucket.org/tfeinstein/vikos.git

谢谢, 托德

【问题讨论】:

    标签: apache login filter shiro anonymous


    【解决方案1】:

    你可以尝试添加

    authc.successUrl  = "default sucess url for logged in"
    

    在[主]块

    /public/pages/login.jsp = authc 
    

    作为 [urls] 块的第一行

    【讨论】:

    • 我提出了您的建议,以及 { authc.successUrl = /secure/pages/User.jsp } 但由于某种原因导致覆盖 localhost/ 的 Struts2 重定向的尝试Vikos/secure/user 到一个无效的 login.jsp URL 路径。 localhost/Vikos/login.jsp 而不是 localhost/Vikos/secure/pages/login.jsp。
    • 在这一点上,Struts2 和 Shiro 可能存在一些问题,并且相互影响。
    猜你喜欢
    • 2012-08-28
    • 2014-06-17
    • 2018-06-07
    • 2017-03-17
    • 2015-11-17
    • 2019-02-26
    • 2018-01-25
    • 2018-05-28
    • 2019-11-23
    相关资源
    最近更新 更多