Tin*_*iny 1 spring spring-security pointcut
我使用Spring安全性3.2.0和相同版本的Spring框架.Spring安全性在我的项目中运行良好.为了保护我的DAO类(和其他类)中的方法,我想使用以下切入点方法(在spring-security.xml文件中).
<global-method-security>
<protect-pointcut expression="execution(*controller.*.*(..))" access="ROLE_ADMIN"/>
</global-method-security>
Run Code Online (Sandbox Code Playgroud)
我希望指定的切入点表达式能够保护controller包内所有类中的所有方法,并且只能由具有ROLE_ADMIN指定权限的用户访问.
但是当我尝试使用这个表达式时,进程终止时会出现以下保存spring-security.xml文件的异常.
PropertyAccessException 1:org.springframework.beans.MethodInvocationException:属性'pointcutMap'抛出异常; 嵌套异常是java.lang.IllegalArgumentException:切入点格式不正确:在字符位置26执行时期望'名称模式'(控制器.*(..))^
我正在尝试使用3.4.1 元素部分的保护切入点子部分的添加安全性切入点中的参考文档所指定的方法.<global-method-security>
这种情况下正确的表达式语法是什么?
编辑:
使用protect-pointcut添加安全切入点
使用protect-pointcut特别强大,因为它允许您只使用简单的声明将安全性应用于许多bean.请考虑以下示例:
<global-method-security>
<protect-pointcut expression="execution(* com.mycompany.*Service.*(..))" access="ROLE_USER"/>
</global-method-security>
Run Code Online (Sandbox Code Playgroud)
这将保护应用程序上下文中声明的bean上的所有方法,这些bean的类在com.mycompany包中,其类名以"Service"结尾.只有具有该ROLE_USER角色的用户才能调用这些方法.与URL匹配一样,最具体的匹配必须首先出现在切入点列表中,因为将使用第一个匹配表达式.安全注释优先于切入点.
复制并粘贴参考文档中解释的部分(因为有人可能会发现滚动文档很繁琐).
试试这个表达式:
<protect-pointcut expression="execution(* your.package.controller.*.*(..))" access="ROLE_ADMIN"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4533 次 |
| 最近记录: |