ssh+shiro权限控制的xml配置

 pom.xml 的配置:
<properties>
	<shiro.version>1.2.2</shiro.version>
</properties>

	<dependencies>
		<!-- 权限控制 框架 -->
		<dependency>
			<groupId>org.apache.shiro</groupId>
			<artifactId>shiro-all</artifactId>
			<version>${shiro.version}</version>
		</dependency>
web.xml的配置:
<!--
		2.5的工程,filter执行的顺序是按照在web.xml中注册的顺序从上往下执行的
		3.0的工程,filter执行的顺序是类名的字典顺序
		listener
		filter
		servlet(第一次访问的时候创建)
	-->
	<!--
		spring框架提供,整合shiro框架
		本拦截器一定要卸载struts的拦截器之上
		在DelegatingFilterProxy创建的过程中,依赖了一个对象,这个对象必须在applicationContext.xml文件中注册
		而且注册的时候声明的id必须和DelegatingFilterProxy声明的filter-name保持一致
	-->
	<filter>
		<filter-name>shiroFilterFactoryBean</filter-name>
		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>shiroFilterFactoryBean</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
applicationContext.xml 的配置:

<!-- 初始化shiro框架提供的过滤器 -->
	<bean id="shiroFilterFactoryBean" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
		<!-- 注入安全管理器 -->
		<property name="securityManager" ref="securityManager"></property>

		<!-- 权限认证的页面,登录页面 -->
		<property name="loginUrl" value="/login.html"></property>
		<!-- 权限认证成功以后要跳转的页面 -->
		<property name="successUrl" value="/index.html"></property>
		<!-- 权限不足要跳转的页面
		只对拦截器生效,不会注解方式生效
		 -->
		<property name="unauthorizedUrl" value="/unauthorizedUrl.html"></property>
		<!--指定拦截的规则 -->
		<property name="filterChainDefinitions">
			<!--
				authc:框架提供的过滤器,有权限就放行,没有权限就拦截
				anon:框架提供的过滤器,可以匿名访问
				perms:框架提供的过滤器,用户请求资源的时候,会去检查用户是否拥有对应的权限,如果有就放行,没有,跳转到unauthorizedUrl属性指定的页面
				拦截的规则执行的时候是从上往下执行的,一旦有一个规则匹配成功,后面的规则就不再执行了
				拦截的规则不可以折行
			-->
			<value>

				/css/* = anon         拦截器拦截主要是用户还没有登陆时 需要保护的资源
				/data/* = anon
				/images/* = anon
				/js/** = anon
				/validatecode.jsp = anon
				/userAction_login.action = anon
				/courierAction_pageQuery.action = perms["courierAction_pageQuery"]
				/hi.html = perms["courierAction_pageQuery"]
				/** = authc
			</value>
		</property>
	</bean>

	<!-- 注册安全管理器 -->
	<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
		<!-- 注入realm -->
		<property name="realm" ref="userRealm"></property>
	</bean>
 
 
如果需要开启事务注解定义拦截规则就要在
applicationContext.xml 的配置加上如下配置:    <!--
        开启事务注解
        JDK代理方式 : 根据目标对象所实现的接口,创建了一个代理对象
        CGLib代理方式 : 创建一个目标对象的子类

        proxy-target-class:true,使用cglib代理
        proxy-target-class:false,使用jdk代理
    -->
    <tx:annotation-driven proxy-target-class="true"
        transaction-manager="transactionManager" />
    <!-- 基于Spring的自动代理,创建Service层的实现 -->
    <bean
        class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
        <!-- 开启cglib代理 -->
        <property name="proxyTargetClass" value="true"></property>
    </bean>
    <!--
        配置切面= 切点(向那里插入代码)+通知 (要插入的代码)
    -->
    <bean
        class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
        <!-- 注入安全管理器 -->
        <property name="securityManager" ref="securityManager"></property>
    </bean>



注解的应用场景是用户已经完成登陆了



标签的方式 主要应用在 动态的展示权限(比如用户有权限,就给他显示修改功能,没权限就不显示)




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值