您当前的位置: 首页 > 

杨林伟

暂无认证

  • 2浏览

    0关注

    3337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

21dwr - DWR 与 Acegi整合

杨林伟 发布时间:2019-04-29 14:13:22 ,浏览量:2

整合 DWR 和 Acegi 是为了保护 bean 方法调用

在此之前有必须熟悉 spring 和 acegi,我就不解释 acegi 的配置了,您可以从 acegi 网站下载最新版本。

问题提出

我们必须保护一个 bean,通过 DWR 设置“exposed”。

Acegi 是一个基于 Spring 的安全机制的框架,这个例子告诉你如何去阻止通过网页访问一个 bean 方法, 如果它没有权限的。

在 dwr.xml 里,在没有 acegi 保护下,我们这样声明 bean




在 Spring 配置文件里,这个 addLoan 方法被网页调用,这个 loadDWR bean 是一个 Spring 管理的 bean


	
		
	
	
		
	

解决方案

然后我们怎么去阻止没有权限的访问 loanDWR.addLoan 这个方法呢?如下所示:

- 创建一个安全机制的拦截器





	fr.iremia.jlab.web.dwr.LoanDWR.addLoan=edit,admin


LoanDWR.addLoan 方法,只能被管理员或者有修改角色权限的用户 edit 调用

想要了解 acegi 的属性:authenticationManager 和 httpRequestAccessDecisionManager,请参考 http://acegisecurity.org/docbook/acegi.html

- 为 bean 创建一个代理 给原有的 loanDWR Spring bean 添加一个代理,使用 Spring proxyfactorybean:


	
	
		
	

现在,loadDWRSecure 是个代理被 loanDWR 调用,每个调用 addLoan 方法将被 Acegi 拦截,只有拥有权限的用户才能调用

- 修改 dwr 配置文件

我们现在需要修改


	

关注
打赏
1662376985
查看更多评论
立即登录/注册

微信扫码登录

0.0592s