请您先登录,才能继续操作
如何控制java方法的权限,除了配置文件和注解。
skydazzle
2012-05-28
如何控制java方法的权限,除了配置文件和注解。以下是两种方式。
<global-method-security> <protect-pointcut expression="execution(* com.goodwill.empi.remote.flex.*Service.store*(..))" access="ROLE_ADMIN"/> <protect-pointcut expression="execution(* com.goodwill.empi.remote.flex.*Service.obtain*(..))" access="ROLE_USER"/> </global-method-security> @PreAuthorize("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')") public String obtainAllBooks(); 除了这种两种方法还有其他的方法吗? 可以通过代码来绑定方法的权限吗 ? |
|
cywhoyi
2012-05-28
小弟不才,想到aop代理机制,同样采用注解或配置文件
|
|
dongcb678
2012-05-28
能不能不吃东西又能不饿呢
|
|
mazzystar
2012-05-28
用意念控制
|
|
fxrz12
2012-05-29
java权限的控制已有较完善的机制,基本原理是依托对jvm类加载的限制达到的,
像tomcat,它的安全策略文件是一个比较好用的权限控制利器,实现了最严格的权限控制。 |
|
jadethao
2012-06-27
也就想到了aop控制,别的还真没想到!
|
|
bjzk_2012_zk
2013-08-02
桥接模式有一种特殊应用,可以对类成员方法进行编译级别的控制。
举例:用dao和service为例 一个basedaoimpl抽象类,实现所有dao方法(我使用springdata,估只需实现CRUD(create,read,update,delete)四类方法即可)。 Idao接口分为CRUD四个,分别定义CRUD方法。 Iservice接口需继承Idao接口(根据继承的Idao决定Iservice该拥有的行为), service实现Iservice并继承basedaoimpl抽象类. 这样就可以通过控制Iservice接口控制service的成员。 实现编码级别,编译级别的java方法权限控制。 备注:相当于虽然basedaoimpl是service的父类,但是Iservice约束了service该暴露给开发者哪些方法,Iservice中没有的方法service在编译级别上调用不到。 ps:不知道大家能听懂吗? |