Spring-security.XML 配置MyPermissionEvaluator ,hasPermission 返回fale,jsp 页面怎么展示403页面
时间: 2024-05-03 10:17:21 浏览: 10
要展示403页面,可以在Spring Security的配置文件中进行如下配置:
```xml
<http>
<!-- 配置访问控制 -->
<intercept-url pattern="/admin/**" access="hasRole('ADMIN')" />
<!-- 配置403页面 -->
<access-denied-handler error-page="/403.jsp" />
</http>
```
其中,`/admin/**`为需要授权访问的URL路径,`hasRole('ADMIN')`为自定义的权限表达式,用来判断用户是否具有ADMIN角色。
如果用户没有授权访问该URL,则Spring Security会跳转到`/403.jsp`页面。在该页面中,可以展示403错误的提示信息以及相应的处理方式。
注意,如果需要使用自定义的PermissionEvaluator来实现权限判断,则需要在Spring Security的配置文件中进行如下配置:
```xml
<beans:bean id="expressionHandler" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler">
<beans:property name="permissionEvaluator" ref="myPermissionEvaluator"/>
</beans:bean>
<global-method-security pre-post-annotations="enabled">
<expression-handler ref="expressionHandler"/>
</global-method-security>
<beans:bean id="myPermissionEvaluator" class="com.example.MyPermissionEvaluator" />
```
其中,`MyPermissionEvaluator`为自定义的PermissionEvaluator实现类,用来处理自定义的权限判断逻辑。`DefaultMethodSecurityExpressionHandler`为Spring Security提供的默认的表达式处理器,用来解析权限表达式。通过将`permissionEvaluator`属性设置为`myPermissionEvaluator`,就可以使用自定义的权限判断逻辑来处理权限表达式中的`hasPermission`方法。