【问题标题】:Handling totally different user groups in Apache Shiro在 Apache Shiro 中处理完全不同的用户组
【发布时间】:2014-07-09 16:17:05
【问题描述】:

我的系统包含 2 个完全不同的用户组,即客户和系统广告。它们位于不同的表结构中。

我正在尝试了解如何设置 Apache Shiro 以分别正确验证这些用户。

我在我的 Web 应用程序中使用 Spring + Struts 2,我曾考虑在我的 web.xml 中使用 2 个不同的主 Shiro 过滤器,如下所示:

<filter>
    <filter-name>authTravelAgentFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    <init-param>
        <param-name>targetFilterLifecycle</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter>
    <filter-name>authAdminFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    <init-param>
        <param-name>targetFilterLifecycle</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>authAdminFilter</filter-name>
    <url-pattern>/admin/*</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>authCustomerFilter</filter-name>
    <url-pattern>/main/*</url-pattern>
</filter-mapping>

这是设置 Apache Shiro 的有效方法,还是有更正确的方法?

【问题讨论】:

    标签: java spring apache shiro


    【解决方案1】:

    通常您可以为用户分配角色,并根据该角色授予特定的访问权限。

    例如,将以下内容放入您的 ini 文件中:

    [roles]
    main = *
    admin = *
    

    这里你只是定义了两个没有特定权限的角色,但是你可以使用它们来限制某些 url 模式的权限,所以只有具有正确角色的登录用户才能访问受限的 url:

    [urls]
    ...
    /main/** = authc, roles[main]
    /admin/** = authc, roles[admin]
    

    如何将角色与用户结合,您可以在此处找到更多信息:https://shiro.apache.org/configuration.html#Configuration-INISections

    【讨论】:

      猜你喜欢
      • 2013-11-10
      • 2013-10-29
      • 2013-04-20
      • 2012-11-06
      • 2013-06-19
      • 2014-07-26
      • 1970-01-01
      • 2019-03-31
      • 2013-06-28
      相关资源
      最近更新 更多