spring aop 权限

kayzombie 2009-11-25 12:14:05
我的Action 继承DispatchAction我想用spring 拦截器获取被拦截的方法名?现在得到的方法名总是execute,怎么得到action中真实的方法名啊?
...全文
117 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
panhaichun 2009-11-25
  • 打赏
  • 举报
回复
我靠,跟你说这么清楚了。

struts1所有的action方法调用都先经过execute。

DispatchAction里面的execute就是根据method参数的值来调用其它方法的,因为用的反射,aop拦截不到了,你重写execute方法,根据method参数的值和权限配置,没权限直接退出不去调用action方法不就行了。

public class BaseAction extends DispatchAction {

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
if (isRoleAllow(request)) {
return super.execute(......);
} else {
返回权限出错页面或抛出异常等。。。。
}
}

//检查权限
protected boolean isRoleAllow(HttpServletRequest request) {
String method = request.getParamenter(你配置的参数名称);
////if ("save".equals(method)) {//假设save是添加}
////if ("delete".equals(method)) {//假设delete是删除}

读你的权限表判断当前用户有没有权限返回true或false不就行了
return ...
}
}
kayzombie 2009-11-25
  • 打赏
  • 举报
回复
那我现在这种情况该怎么解决啊?
panhaichun 2009-11-25
  • 打赏
  • 举报
回复
楼主你去看下DispatchAction的源代码不是啥的明白了
panhaichun 2009-11-25
  • 打赏
  • 举报
回复
我知道你是这个意思
kayzombie 2009-11-25
  • 打赏
  • 举报
回复


写一个基类继承DispatchAction,重写execute方法,在里面加入你的权限判断逻辑。


另外还可以考虑在别的地方拦截啊
[/Quote]

简单的说就是我有一个action它继承DispatchAction 里面有对客户资料的增,删,改方法,现在我就想在执行增,删,改方法之前判断该用户是否有这个权限?
kayzombie 2009-11-25
  • 打赏
  • 举报
回复
各位帮帮忙啊急~~现在我的Action中有一个方法方法名为showCompanyCusInfo我想用spring的拦截器拦截这个方法并获取到这个方法名,现在得到的方法名总是execute!怎么得到真实的方法名啊?
panhaichun 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kayzombie 的回复:]
那有没有什么好的解决方法啊?我现在用的是SSH框架要做权限而且权限还比较细粒。
[/Quote]

写一个基类继承DispatchAction,重写execute方法,在里面加入你的权限判断逻辑。


另外还可以考虑在别的地方拦截啊
kayzombie 2009-11-25
  • 打赏
  • 举报
回复
那有没有什么好的解决方法啊?我现在用的是SSH框架要做权限而且权限还比较细粒。
panhaichun 2009-11-25
  • 打赏
  • 举报
回复
execute里面用反射调用的方法 AOP是拦截不到的
kayzombie 2009-11-25
  • 打赏
  • 举报
回复
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list><value>/customAction</value></list>
</property>
<property name="interceptorNames">
<list><value>authorCustomInter</value></list>
</property>
</bean>
<bean id="authorCustomInter" class="com.psit.struts.action.AuthorityCustomInterceptor"/>
youjianbo_han_87 2009-11-25
  • 打赏
  • 举报
回复
看看你 aop 地方的配置。。。。。。。。。
kayzombie 2009-11-25
  • 打赏
  • 举报
回复
第一次做权限没经验不太清楚怎么做~~先谢啦,一直都想用spring拦截器的~~那我这种情况是不是spring拦截器就不好用啦?
youjianbo_han_87 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kayzombie 的回复:]
那有没有什么好的解决方法啊?我现在用的是SSH框架要做权限而且权限还比较细粒。
[/Quote]

spring securetiy可以吗?
NeverGiveUp2016 2009-11-25
  • 打赏
  • 举报
回复
建议使用struts2 .

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧