基于struts2拦截器的权限管理

我要分享的是我为华夏银行保证金系统做的一个权限管理模块,基于struts2拦截器来实现可配置的权限模型。

 

看下struts配置文件先:

 

 

	<package name="accesslog" extends="base" abstract="true">
		<interceptors>
			<interceptor name="accesslog"
				class="com.ylsoft.power.web.intercept.AccessLogInterceptor">
			</interceptor>
			<interceptor-stack name="accesstrace">
				<interceptor-ref name="defaultStack" />
				<interceptor-ref name="accesslog" />
			</interceptor-stack>
		</interceptors>
		<default-interceptor-ref name="accesstrace" />
	</package>

	<package name="needsession" extends="accesslog" abstract="true">
		<interceptors>
			<interceptor name="validsession"
				class="com.ylsoft.power.web.intercept.ValidSessionInterceptor">
			</interceptor>
			<interceptor-stack name="filtersession">
				<interceptor-ref name="mydefault"></interceptor-ref>
				<interceptor-ref name="accesslog"></interceptor-ref>
				<interceptor-ref name="validsession"></interceptor-ref>
			</interceptor-stack>
		</interceptors>
		<default-interceptor-ref name="filtersession"></default-interceptor-ref>
	</package>
	<package name="authrole" extends="needsession" abstract="true">
		<interceptors>
			<interceptor name="authenticate"
				class="com.ylsoft.power.web.intercept.AuthenticateInterceptor">
			</interceptor>
			<interceptor-stack name="auth">
				<interceptor-ref name="mydefault"></interceptor-ref>
				<interceptor-ref name="accesslog"></interceptor-ref>
				<interceptor-ref name="filtersession"></interceptor-ref>
				<interceptor-ref name="authenticate"></interceptor-ref>
			</interceptor-stack>
		</interceptors>
		<default-interceptor-ref name="auth"></default-interceptor-ref>
	</package>

 

我把对struts提供的服务的访问权限分为以下几种:

 

1.不做任何限制

2.只做访问日志

3.所有登录的用户都能访问

4.通过角色认证的用户才能访问

 

通过配置文件可以看出它们有序的组合在一起,并且都是抽象的,对它们的定义很简单,它们是独立的内容不与任何业务相关,因为它们不知道接下来要配置到哪些业务上。

 

这样的好处是这些配置可以重用,方便管理。

 

 

下面是针对具体业务的配置:

 

 

<package name="backlog" namespace="/" extends="authrole">
		<action name="backlog"
			class="com.ylsoft.backlog.action.BacklogAction">
			<result name="failList">
				/project/backlog/failList.jsp
			</result>
			
			<result name="accountUpdate">
				/project/backlog/accountUpdate.jsp
			</result>
			
			<result name="queryList">
				/project/backlog/queryList.jsp
			</result>
		</action>
	</package>
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值