使用自定义的WkcPermissionEvaluator来实现权限校验,xml 中让WkcPermissionEvaluator注入到permissionEvaluator属性中
时间: 2024-04-30 10:18:33 浏览: 8
若想使用自定义的 `WkcPermissionEvaluator` 来实现权限校验,可以按照以下步骤进行操作:
1. 首先,在 Spring 配置文件中配置 `WkcPermissionEvaluator`:
```xml
<bean id="permissionEvaluator" class="com.example.WkcPermissionEvaluator"/>
```
2. 然后,在 Spring Security 配置文件中配置 `permissionEvaluator` 属性:
```xml
<security:global-method-security pre-post-annotations="enabled" >
<security:expression-handler ref="expressionHandler"/>
</security:global-method-security>
<bean id="expressionHandler" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler">
<property name="permissionEvaluator" ref="permissionEvaluator"/>
</bean>
```
其中,`ref="permissionEvaluator"` 表示引用之前在 Spring 配置文件中定义的 `WkcPermissionEvaluator` Bean。
3. 最后,在需要进行权限校验的方法上,使用 `@PreAuthorize` 或 `@PostAuthorize` 注解,并在注解中使用自定义的权限表达式。
```java
@PreAuthorize("hasPermission(#id, 'read')")
public void readData(Long id) {
// ...
}
@PreAuthorize("hasPermission(#id, 'write')")
public void writeData(Long id) {
// ...
}
```
其中,`hasPermission` 是自定义的权限表达式,`#id` 表示方法参数中的 `id` 值,`'read'` 和 `'write'` 表示不同的权限类型。
这样就可以使用自定义的 `WkcPermissionEvaluator` 来实现权限校验了。