jsp <security:authorize access="hasPermission,中的hasPermission方法断点只会进入到DenyAllPermissionEvaluator 中,不会进入到AclPermissionEvaluator 中
时间: 2024-06-07 22:07:01 浏览: 73
SampleApplePay:在 Authorize.Net 中使用 ApplePay API
`<security:authorize>` 标签是 Spring Security 提供的标签,用于在 JSP 页面中进行权限控制。`hasPermission` 是其中的一个表达式,用于检查当前用户是否具有某个权限。Spring Security 中提供了两个默认实现,即 `AclPermissionEvaluator` 和 `DenyAllPermissionEvaluator`。
`DenyAllPermissionEvaluator` 是一个特殊的实现,它会拒绝所有的权限检查请求,因此如果你使用了它,那么无论你传入什么参数,都不会进入 `AclPermissionEvaluator` 中进行检查。
如果你想使用 `AclPermissionEvaluator`,你需要在 Spring Security 的配置文件中进行相应的配置。具体地说,你需要定义一个自定义的 `PermissionEvaluator`,并将其注册到 Spring Security 中。然后,在 `<security:global-method-security>` 标签中,你需要设置 `pre-post-annotations` 属性为 `enabled`,以启用方法级别的权限控制。最后,在方法上使用 `@PreAuthorize` 或 `@PostAuthorize` 注解,指定相应的权限表达式,即可实现权限控制。
阅读全文