spring security的标签库

spring 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>

时间: 2024-10-24 17:40:06

spring security的标签库的相关文章

Spring MVC----表单标签库

Spring MVC 表单标签库: 声明表单标签库 在使用 SpringMVC 的时候我们可以使用 Spring 封装的一系列表单标签,这些标签都可以访问到 ModelMap 中的内容.我们需要先在 JSP 中声明使用的标签,具体做法是在 JSP 文件的顶部加入以下指令: <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 表单标签 <form:form

Spring Security http标签的use-expressions=&quot;true&quot;属性

如果声明为true,那么在access属性要用hasRole()这样写: <intercept-url pattern="/secure/extreme/**" access="hasRole('ROLE_SUPERVISOR')"/> 如果声明为false(默认),那么access直接就是 <intercept-url pattern="/secure/extreme/**" access="ROLE_USER&qu

Thymeleaf整合到Spring Security,标签sec不起作用

将 pom 文件中的 thymeleaf-extras-springsecurity4 依赖改成  thymeleaf-extras-springsecurity5 <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity5</artifactId> <version>3.0.4.RELEASE<

Spring Security教程之Jsp标签(四)

目录 1.1     authorize 1.2     authentication 1.3     accesscontrollist Spring Security也有对Jsp标签的支持的标签库.其中一共定义了三个标签:authorize.authentication和accesscontrollist.其中authentication标签是用来代表当前Authentication对象的,我们可以利用它来展示当前Authentication对象的相关信息.另外两个标签是用于权限控制的,可以

Spring security 获取当前用户

spring security中当前用户信息 1:如果在jsp页面中获取可以使用spring security的标签库 在页面中引入标签 1 <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> 然后: 1 <div> username : <sec:authentication property="name"/&g

使用Spring标签库

A.Spring标签库 Web项目若使用Spring Web MVC并使用JSP作为表现的话.从Spring2.0版本开始提供一套标签库可供使用. 使用标签库无非是易于开发,维护之类云云.这里就不阐述了.我们还是更关注spring有哪些标签库和如何使用. B.spring.tld标签库 spring.tld标签库核心类的包在org.springframework.web.servlet.tags. B.1.spring:hasBindErrors 对应org.springframework.we

Spring Security 4 退出 示例(带源码)

上一篇:Spring Security 4 自定义登录表单 注解和XML例子 下一篇:Spring Security 4 安全视图片段 使用标签(Spring Security 标签) 原文地址:http://websystique.com/spring-security/spring-security-4-logout-example/ [已翻译文章,点击分类里面的spring security 4 ] [ 翻译by 明明如月 QQ 605283073] 本文展示Spring Security

255.Spring Boot+Spring Security:使用md5加密

说明 (1)JDK版本:1.8 (2)Spring Boot 2.0.6 (3)Spring Security 5.0.9 (4)Spring Data JPA 2.0.11.RELEASE (5)hibernate5.2.17.Final (6)MySQLDriver 5.1.47 (7)MySQL 8.0.12 需求缘起 很多时候,我们自己已经有现成的一套系统在运行了,这时候要接入spring security的话,那么难免会碰到一个问题:就是自己设计的密码加密方式和spring secur

256.Spring Boot+Spring Security: MD5是加密算法吗?

说明 (1)JDK版本:1.8 (2)Spring Boot 2.0.6 (3)Spring Security 5.0.9 (4)Spring Data JPA 2.0.11.RELEASE (5)hibernate5.2.17.Final (6)MySQLDriver 5.1.47 (7)MySQL 8.0.12 前言 有网友在公众号留言:准确的说md5是摘要算法不是加密算法 针对这个问题,当时也没有仔细的思考,空下来的时候,对于这个问题整理了下思路. 一.加密算法 1.1 加密和解密 1.1