我有一个项目,我正在尝试使用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
,那么我将被带到我试图进入/安全网址的原始页面。这样才有用。
如果/public/** = anon
,则会重新加载login.jsp。我没有被发送到我原本试图访问的/ secure目录中的页面。如果我没有为/public/**
网址格式添加条目,则会出现同样的情况。
似乎有一些我错过的Shiro基本原理。如果您需要在项目中看到任何其他内容,我已将其上传到BitBucket。
https://tfeinstein@bitbucket.org/tfeinstein/vikos.git
谢谢, 托德
答案 0 :(得分:0)
您可以尝试添加
authc.successUrl = "default sucess url for logged in"
在[main]块
/public/pages/login.jsp = authc
作为[urls]块的第一行