<security:authorize access="customPermission('permissionName')"> ,如何在xml配置中注册为表达式
时间: 2023-06-17 22:08:48 浏览: 164
要在 XML 配置文件中注册 SpEL 表达式,需要使用 `<context:component-scan>` 标签和 `<bean>` 标签。
首先,在 XML 配置文件的顶部添加以下命名空间和模式:
```xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
```
然后,在配置文件中添加以下代码,使用 `<context:component-scan>` 标签扫描自定义权限表达式类的包,并注册为 Spring 的 bean:
```xml
<context:component-scan base-package="com.example.security.expression" />
<bean id="customPermissionEvaluator" class="com.example.security.expression.CustomPermissionEvaluator" />
```
其中,`com.example.security.expression` 是自定义权限表达式类所在的包名,`CustomPermissionEvaluator` 是自定义权限表达式类的类名。
现在,您可以在 XML 配置文件中使用 `customPermission()` 表达式了:
```xml
<security:authorize access="customPermission('permissionName')">
<!-- Your secured content here -->
</security:authorize>
```
其中,`permissionName` 是自定义的权限名称,可以在 `CustomPermissionEvaluator` 类中实现 `hasPermission()` 方法来定义其所代表的权限逻辑。
阅读全文