SpringSecurity提供了三个JSP安全标签用于在视图层提供安全,如下:
(1) <security:accesscontrollist>
: 如果当前认证的用户在指定的领域对象中有规定的许可之一,那么这个标签体中的
内容将被Rendered.
(2) <security:authentication>
: 访问当前被认证用户的属性。
(3) <security:authorize>
: 根据用户拥有的授权,展示标签体中的内容.
使用上述三个标签需要在JPS中声明:
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
1. <security:authentication>
例如: 页面显示当前被认证用户的用户名。
Hello <security:authentication property="principal.username"
/>!
通过该标签可访问认证用户信息的几个属性:
(1)auhtorites: GrantedAuthority对象的集合,即已授权给当前认证用户的权限;
(2)credentials: 用于校验principal,通常指用户密码;
(3)details: 认证的附件信息,如:IP地址,证书序列号,SessionId;
(4)principal: 用户的principal.
示例:给用户名指定一个变量:
<security:authentication property="principal.username" var="loginId"
/>
将创建的变量指定在某个区域(request,session)中:
<security:authentication property="principal.username" var="loginId" scope="request"
/>
2. <security:authorize>
例如:如果用户拥有"ROLE_SPITTER"权限将显示Form:
<security:authorize access="hasRole('ROLE_SPITTER')">
<c:url value="/spittle" var="spittle_url" />
<form:form modelAttribute="spittle" method="POST" action="${spittle_url}/form">
<span id="label"><spring:message code="label.spittle" text="Enter spittle:"/></span>
<form:textarea path="text" rows="2" cols="40" />
<form:errors path="text" />
<br/>
<div style="width:100%;text-align:right;">
<input type="submit" value="Spit it!" class="status-btn round-btn disabled" />
</div>
</form:form>
</security:authorize>
例如:如果用户名为"habuma"将显示超链接:
<security:authorize access="isAuthenticated() and principal.username=='habuma'
">
<a href="/admin">Administration</a>
</security:authorize>
上面个这种配置有Bug,若从浏览器中输入"/admin"也可以访问,解决该问题有两种方法:
(1) 添加<intercept-url>元素
<intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN') and
hasIpAddress('192.168.1.2')"/>
这种配置解决了上面的问题但需要的配置文件和JSP中都需要配置。
(2) 使用<security:authorize>的url属性
<security:authorize url="/admin/**">
<spring:url value="/admin" var="admin_url" />
<br/><a href="${admin_url}
">Admin</a>
</security:authorize>
推荐使用方法2.
该标签其他属性:
ifAllGranted, ifAnyGranted, ifNotGranted指当前用户是否已经被授于了权限或授予了上面权限,这三个标签
在SpringSecurity中已经不推荐使用,因为通过SpringEL和access属性即可以做到这三个属性相同的事情。
分享到:
相关推荐
Apress - Securing the Perimeter.2019 Apress - Securing the Perimeter.2019
2. **Spring Security (又称为 Acegi)** - Spring Security 的核心概念和技术特点。 - 如何与 JSR 168 规范集成。 3. **Spring Portlet Security** - Spring Security 在 Portlet 开发中的具体应用。 4. **应用...
RedHat - Securing and Optimizing Linux.pdf
藏经阁-SECURING THE DATA CENTER IN A.pdf
Api-securing-restful-apis-with-jwt.zip,如何使用json web令牌保护nodejs restful crud api?用jwt保护restfulapi,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库...
- **标题**:“Networkers2009:BRKUCT-2000 - Securing Enterprise Voice - Network and Applications” - **描述**:此会话深入探讨了保护企业IP通信免受各种攻击的各种安全技术和工具。 - **标签**:“Cisco 思科...
标题“tv-w02-securing-the-iot-connected-car-with-digital-identity”指向的主题是关于如何使用数字身份来保障物联网(IoT)连接汽车的安全。这个话题涉及到多个IT领域的关键知识点,包括物联网安全、车联网技术、...
SSL(Secure Sockets Layer)和TLS(Transport Layer Security)是网络安全领域中两个至关重要的协议,它们主要用于保护网络通信,确保数据在互联网上的安全传输。本书《SSL and TLS Essentials - Securing the Web...
本文探讨了应用安全的重要性、保护100个产品的挑战、Scope the accountability、static application security testing和dynamic application security testing的差异、实际的安全解决方案等方面。我们需要了解如何...
其中,安全套接层(Secure Sockets Layer,简称SSL)和传输层安全(Transport Layer Security,简称TLS)协议是保障网络通信安全的重要技术之一。《Wiley - SSL and TLS essentials: Securing the Web》一书由...
You will also understand how to achieve authorization in a Spring WebFlux application using Spring Security.You will be able to explore the security confgurations required to achieve OAuth2 for ...
根据提供的文件信息,可以推断这是一本关于Spring Security的专业书籍,书名为《Pro+Spring+Security》,主要面向Java开发者。该书深入探讨了Spring Security框架,涵盖了从基础的安全概念到高级的安全策略实施。接...
PaloAlto
【标题】"GS-any2eg_web员工"是一个与企业安全相关的项目,主要关注在Web环境中保护员工协作的数据安全。此项目可能涉及到多个方面,包括数据整合、权限管理、加密技术以及安全策略实施。 【描述】描述中提到的“SA...
Advanced API Security is a complete reference to the next wave of challenges in enterprise security--securing public and private APIs. API adoption in both consumer and enterprises has gone beyond ...
You can download the examples (consisting of 60 sample projects) described in this book from the following Google Code project: code.google.com/p/getting-started-with-spring-framework-2edition/ ...
spring security tutorial on spring security REST api. securing your REST sevices with spring security by Baeldung
Open EntityManager in View 29.4. Using H2’s Web Console 29.4.1. Changing the H2 Console’s Path 29.5. Using jOOQ 29.5.1. Code Generation 29.5.2. Using DSLContext 29.5.3. jOOQ SQL Dialect 29.5.4. ...