Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ApacheShiro中处理完全不同的用户组_Java_Spring_Apache_Shiro - Fatal编程技术网

Java 在ApacheShiro中处理完全不同的用户组

Java 在ApacheShiro中处理完全不同的用户组,java,spring,apache,shiro,Java,Spring,Apache,Shiro,我有一个系统,有两组完全不同的用户、客户和系统管理员。它们位于不同的表结构中 我试图了解如何设置ApacheShiro来正确地分别验证这些用户 我在我的web应用程序中使用Spring+Struts 2,我考虑在我的web.xml中使用两个不同的master Shiro过滤器,如下所示: <filter> <filter-name>authTravelAgentFilter</filter-name> <filter-class>o

我有一个系统,有两组完全不同的用户、客户和系统管理员。它们位于不同的表结构中

我试图了解如何设置ApacheShiro来正确地分别验证这些用户

我在我的web应用程序中使用Spring+Struts 2,我考虑在我的web.xml中使用两个不同的master 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>

authTravelAgentFilter
org.springframework.web.filter.DelegatingFilterProxy
targetFilterLifecycle
符合事实的
authAdminFilter
org.springframework.web.filter.DelegatingFilterProxy
targetFilterLifecycle
符合事实的
authAdminFilter
/管理员/*
authCustomerFilter
/主要/*

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

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

例如,将以下内容放在ini文件中:

[roles]
main = *
admin = *
在这里,您只定义了两个没有特定权限的角色,但您可以使用它们来限制对特定url模式的权限,因此只有具有正确角色的登录用户才能访问受限制的url:

[urls]
...
/main/** = authc, roles[main]
/admin/** = authc, roles[admin]
如何将角色与用户结合您可以在此处找到更多信息: