shiro的URL配置

让我们再次回忆一下spring容器中shirofilter的配置:

 <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <property name="securityManager" ref="securityManager"/>
        <property name="loginUrl" value="/login.jsp"/>
        <property name="successUrl" value="/index.jsp"/>
        <property name="unauthorizedUrl" value="/unauthorized.jsp"/>
        <!-- The 'filters' property is not necessary since any declared javax.servlet.Filter bean
             defined will be automatically acquired and available via its beanName in chain
             definitions, but you can perform overrides or parent/child consolidated configuration
             here if you like: -->
        <!-- <property name="filters">
            <util:map>
                <entry key="aName" value-ref="someFilterPojo"/>
            </util:map>
        </property> -->
        <property name="filterChainDefinitions">
            <value>
                /favicon.ico = anon
                /logo.png = anon
                /shiro.css = anon
                /login.jsp = anon 
                # allow WebStart to pull the jars for the swing app:
                /*.jar = anon
                # everything else requires authentication:
                /** = authc
            </value>
        </property>
    </bean>

在上述的配置文件中,有一个名为filterChainDefinitions的属性,定义的是拦截器链,在这里可以配置各种资源的URL被访问所需要的权限。
其格式是url=拦截器[参数],拦截器[参数],anon是anonymous的缩写,表示匿名访问,也就是说该资源无需登陆,authc则是authentication的缩写,表示需要身份认证通过之后才能访问。URL支持ANT风格。

URL匹配优先级的问题

URL匹配采取第一次匹配优先的方式,即当一个或多个资源同时适用多个拦截器时,从头开始起第一个匹配上的拦截器生效。
例如:
/bb/**=filter1
/bb/aa=filter2
/**=filter3
如果访问的URL是“/bb/aa”,按照第一次匹配优先的规则,该访问将由filter1进行拦截。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shiro的拦截URL动态配置在数据库中可以实现灵活的权限管理和动态的权限控制。传统的权限控制方式通常是在代码中硬编码,当权限配置发生变化时,需要重新编译代码并重新部署,不方便管理和维护。而将Shiro的拦截URL配置存储在数据库中,可以在运行时动态修改权限配置,不需要重新编译代码。 使用数据库作为权限配置的存储介质,我们可以通过数据库操作来修改URL的权限信息,如添加新的URL权限、修改已有URL权限或者删除不再需要的URL权限。这样就可以实现对系统权限的实时管理和控制。 通过将Shiro的拦截URL动态配置在数据库中,我们可以更加灵活地控制用户的权限。可以根据用户角色、用户组织、用户类型等条件动态决定用户能够访问的URL资源。当用户权限发生变化时,只需修改数据库中相关的权限配置数据,就可以实现权限的动态调整,无需停机或者重新加载。 此外,将Shiro的拦截URL动态配置在数据库中还可以方便地对权限进行维护和管理。可以通过数据库的工具和SQL语句来管理URL的权限,如查询某个用户具有的URL权限、查询系统中所有的URL权限等。 总之,将Shiro的拦截URL动态配置在数据库中可以实现权限的灵活管理和动态控制,提高系统的可维护性和扩展性。同时,通过数据库的管理工具,也可以方便地对权限进行管理和维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值