<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %> 只能引入默认的类
时间: 2023-12-13 13:05:50 浏览: 28
这个标签库是 Spring Security 提供的,用于在 JSP 页面中使用 Spring Security 的安全标签。在使用时,需要在 JSP 页面中引入 Spring Security 的标签库,如下所示:
```jsp
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
```
这样就可以在 JSP 页面中使用 Spring Security 的安全标签了。需要注意的是,如果你想引入其他的类,需要使用其他的标签库。
相关问题
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %> 设置调用自定义的
security 标签库需要在 Spring Security 配置文件中进行配置。首先,在 web.xml 文件中配置 Spring Security 的过滤器:
```
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
```
接下来,在 Spring Security 配置文件中配置自定义的 security 标签库:
```
<beans:bean id="securityExpressionHandler" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler">
<beans:property name="permissionEvaluator" ref="customPermissionEvaluator"/>
</beans:bean>
<beans:bean id="customPermissionEvaluator" class="com.example.CustomPermissionEvaluator"/>
<security:authorize access="@customPermissionEvaluator.checkPermission('ROLE_ADMIN')">
<!-- 只有 ROLE_ADMIN 角色可以访问的内容 -->
</security:authorize>
```
在这个例子中,我们创建了一个自定义的 PermissionEvaluator 实现类 CustomPermissionEvaluator,并将其注入到 DefaultMethodSecurityExpressionHandler 中。然后,在 security 标签库中使用 @customPermissionEvaluator.checkPermission('ROLE_ADMIN') 来检查当前用户是否有 ROLE_ADMIN 角色。如果有,则可以访问包裹在 security:authorize 标签中的内容。
jsp 页面<security:authorize access="hasPermission ,点击hasPermission 只能跳转到Spring-security-core.jar里的方法,不能跳转到自定义的方法
`hasPermission` 是 Spring Security 提供的一个表达式语言。在 JSP 中,使用 `<security:authorize>` 标签来进行权限控制时,可以使用 `hasPermission` 表达式来判断是否有权限执行某个操作。在该标签中,`access` 属性用于指定要判断的权限表达式,可以是一个字符串,也可以是一个 SpEL 表达式。
如果你希望跳转到自定义的方法,可以在自定义的方法中使用 `hasPermission` 表达式来进行权限判断,然后返回一个布尔值来表示是否有权限执行某个操作。然后在 JSP 页面中,可以通过调用自定义的方法来进行权限控制。
例如,假设你有一个名为 `myHasPermission` 的方法,用于判断当前用户是否有权限执行某个操作,那么你可以在 JSP 页面中这样使用:
```
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
<security:authorize access="@myHasPermission()">
<!-- 当前用户有权限执行该操作时显示的内容 -->
</security:authorize>
```
在这个例子中,`@myHasPermission()` 表达式会调用 `myHasPermission` 方法来进行权限判断。如果该方法返回 `true`,则显示 `<security:authorize>` 标签内的内容,否则不显示。