spring security的标签库

Posted 彼岸辰星

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring security的标签库相关的知识,希望对你有一定的参考价值。

spring security的标签库

authorize用来判断当前用户的权限,然后根据指定的条件判断是否显示内部的内容。
jsp页面首先要引入security的标签库

应用标签库:<%@ taglib prefix=\'security \' uri=\'http://www.springframework.org/security /tags\' %>


<security :authorize>是一个流程控制标签,能够在满足特定安全需求的条件下显示它的内容体。它有三个互斥的参数:
ifAllGranted——是一个由逗号分隔的权限列表,用户必须拥有所有列出的权限时显示;
ifAnyGranted——是一个由逗号分隔的权限列表,用户必须至少拥有其中的一个权限时才能显示;
ifNotGranted——是一个由逗号分隔的权限列表,用户未拥有所有列出的权限时才能显示。


<security :authentication>获得属性的值比如要获得用户名可以这么写:
<security :authentication property="principal.username"></security :authentication>
他有三个属性,property是必须的,另外scope和var,var定义一个变量,scope定义var存在的范围

例子:

有时需要在页面显示用户名,或者根据用户角色显示或者不显示一些内容。这需要使用到spring security提供的标签库。

在页面中引入标签库:

< %@ taglib prefix ="sec" uri ="http://www.springframework.org/security/tags" % >

使用标签库的示例:
< sec:authentication property ="principal" var ="authentication" />

< sec:authorize ifAllGranted ="ROLE_USER" > 可以访问 </ sec:authorize >

用户名:${authentication.username } < br />

前台 ROLE_ANONYMOUS表示匿名用户

在配置文件中可以设置页面进入的权限

<intercept-url pattern="/Homepage.*" access="ROLE_ADMIN,IS_AUTHENTICATED_ANONYMOUSLY"/>

IS_AUTHENTICATED_ANONYMOUSLY允许匿名用户进入

IS_AUTHENTICATED_FULLY 允许登录用户进入

IS_AUTHENTICATED_REMEMBERED 允许登录用户和rememberMe用户进入

IS_AUTHENTICATED_FULLY:是则满足以下情况返回通过:
**.既不是RememberMeAuthentication也不是AnonymousAuthenticationToken的实例
IS_AUTHENTICATED_REMEMBERED:是则满足以下任一情况返回通过:
a*.Authentication是RememberMeAuthenticationToken的实例
b*.既不是RememberMeAuthentication也不是AnonymousAuthenticationToken的实例
IS_AUTHENTICATED_ANONYMOUSLY:是则满足以下任一情况返回通过:
a*.Authentication是AnonymousAuthenticationToken的实例
b*.既不是RememberMeAuthentication也不是AnonymousAuthenticationToken的实例
c*.Authentication是RememberMeAuthenticationToken的实例

 

 

 

 

authorize用来判断当前用户的权限,然后根据指定的条件判断是否显示内部的内容。
jsp页面首先要引入security的标签库

代码:

<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>



代码:

//ifAllGranted,只有当前用户同时拥有ROLE_ADMIN和ROLE_USER两个权限时,才能显示标签内部内容。
<security:authorize ifAllGranted="ROLE_ADMIN,ROLE_USER">
admin and user
</security:authorize>
//ifAnyGranted,如果当前用户拥有ROLE_ADMIN或ROLE_USER其中一个权限时,就能显示标签内部内容。
<security:authorize ifAnyGranted="ROLE_ADMIN,ROLE_USER">
admin or user
</security:authorize>
//ifNotGranted,如果当前用户没有ROLE_ADMIN时,才能显示标签内部内容
<security:authorize ifNotGranted="ROLE_ADMIN">
not admin
</security:authorize>

 

以上是关于spring security的标签库的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JSF 中使用 Spring Security Facelets 标签库

Spring Security,JSP 标记库错误

使用 Spring Security 3.2.0.RELEASE,如何在没有标签库的纯 HTML 页面中获取 CSRF 令牌

我们应该使用啥来代替 Spring Security 的 JSP 标签库来在 HTML 页面中的客户端具有安全性?

如何使用spring标签库是不是需要jar

Spring Security--Jsp标签