方法安全
这个元素用来在你的应用程序中启用基于注解的安全性(通过设置元素的appropriate
属性),同时分组将应用到整个应用程序上下文的安全切入点声明。你应该只定义一个<global-method-security>
元素。下面的定义可以开启Spring Security的@Secured
支持:
添加一个注解到类或者接口的方法中可以限制对相应方法的访问。Spring Security的原生注解支持定义了一套用于该方法的属性。这些将被传递到AccessDecisionManager
用来做实际的决定:
public interface BankService {
@Secured("IS_AUTHENTICATED_ANONYMOUSLY")
public Account readAccount(Long id);
@Secured("IS_AUTHENTICATED_ANONYMOUSLY")
public Account[] findAccounts();
@Secured("ROLE_TELLER")
public Account post(Account account, double amount);
}
这些都是基于标准的,并允许应用简单的基于角色的约束,但是没有Spring Security的原生注解强大。要使用新的基于表达式的语法,你可以使用
等价的Java代码如下
使用protect-pointcut
添加切入点保护
```xml
<global-method-security>
<protect-pointcut expression="execution(* com.mycompany.*Service.*(..))"
access="ROLE_USER"/>