我使用 shiro 实现了一个自定义身份验证过滤器,但想使用基本身份验证作为备份选项。这意味着 - 如果用户拥有我的自定义过滤器的正确凭据,他将登录。如果没有,我想检查用户是否提供了基本的 authc 标头。
这是我的 shiro.ini
[main]
myAuthc = com.company.security.MyAuthcFilter
myRealm = com.company.security.MyAuthcRealm
myRealm.authenticationTokenClass = com.company.security.MyAuthcToken
securityManager.realms = $myRealm
# user for the basic authc filter
[users]
testuser = testpass
[urls]
/web/** = myAuthc, authcBasic
问题是myAuthc得到评估,authcBasic而不是!在我的测试用例中,客户端仅提供基本身份验证标头,这意味着myAuthc不会对用户进行身份验证。我以为,将评估链中的下一个过滤器,但这不会发生!
在测试场景中,isAccessAllowed()和onAccessDenied()方法都myAuthc返回false。
顺便说一句,当我请求时/web/hello,我实际上收到了HTTP 200,但是响应体是空的 - 没有来自hello资源的信息。
是否可以组合这样的过滤器?
素胚勾勒不出你
相关分类