为了账号安全,请及时绑定邮箱和手机立即绑定

带有 shiro 的多个身份验证过滤器

带有 shiro 的多个身份验证过滤器

翻翻过去那场雪 2021-06-08 18:47:23
我使用 shiro 实现了一个自定义身份验证过滤器,但想使用基本身份验证作为备份选项。这意味着 - 如果用户拥有我的自定义过滤器的正确凭据,他将登录。如果没有,我想检查用户是否提供了基本的 authc 标头。这是我的 shiro.ini[main]myAuthc = com.company.security.MyAuthcFiltermyRealm = com.company.security.MyAuthcRealmmyRealm.authenticationTokenClass = com.company.security.MyAuthcTokensecurityManager.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资源的信息。是否可以组合这样的过滤器?
查看完整描述

2 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

为了记录,onAccessDenied()应该返回true过滤器链才能继续。


查看完整回答
反对 回复 2021-06-17
  • 2 回答
  • 0 关注
  • 252 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信