Apache Shiro:Filter vs Realm,哪一个使用?

时间:2017-08-16 21:05:44

标签: java shiro

用例:HTTP上下文,我需要在给定某个会话属性状态的情况下限制对URL的访问

在自定义过滤器中扩展AccessControlFilter的is *方法是有效的,但它看起来很丑陋:我没有Realm。

AFAIK Realms用于LDAP,JDBC,INI后端等。每当我的"领域"实际上是网络绑定的,即HttpSession本身就是领域。

  1. 我的自定义过滤器是否是正确的安全方式,因为我在HttpSession中有我需要的信息
  2. 如果没有,您如何将Realm绑定到基于Web的上下文?像HttpSession甚至是HttpServletRequest

1 个答案:

答案 0 :(得分:0)

你应该使用Realm绑定你的用户[Subject],即使你只是从你的过滤器中传入一些对象(即从会话或http头中提取的信息)

领域是将进行身份验证和授权的对象。一般来说,有两种类型的过滤器:构建传递到域的令牌的过滤器(例如,表单身份验证,基本身份验证等)和需要某种授权的过滤器(声明一个或多个角色和/或权限)< / p>