Chapter 19. JSP标签库
Spring Security有它自己的Taglib,提供了JSP中访问权限信息和提供安全约束的功能。
要想使用这些标签,你必须在你的JSP中声明安全taglib:
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
这个标签用来决定它的内容是否会被执行。在Spring Security 3.0中, 它可以被用在两种方式中[13]。第一个方式是使用 web-security表达式, 指定标签中的access
属性。 表达式执行会被WebSecurityExpressionHandlder
代理, 这个类定义在application context中(你应该在<http>
命名空间配置中 启用了web表达式,并确认这个服务可以使用)。所以,比如,你可能使用
<sec:authorize access="hasRole('supervisor')"> 这段内容只能被拥有在他们的<tt>GrantedAuthority</tt>列表中 含有"supervisor"权限的用户才能看到。 </sec:authorize>
一个常见的需求是指显示一个特定的链接,如果用户允许点击它。 怎么让我们进一步决定是否一些事情可以允许呢? 标签也可以用一种可选的模式操作,允许你定义一个特定的URL作为属性。 如果用户允许调用这个URL,标签内容就会被执行, 否则它会被略过。所以,你可能会使用一些像
<sec:authorize url="/admin"> 这些内容之会被有权限发送请求到"/admin" URL的用户才可以看到。 </sec:authorize>
为了使用这个标签,必须在你的application context中拥有一个 WebInvocationPrivilegeEvaluator
实例。 如果你使用了命名空间,会自动注册一个。这是一个 DefaultWebInvocationPrivilegeEvaluator
的实例, 它会创建一个默认web请求对提供的URL,调用安全拦截器来查看请求是成功还是失败的。 这允许你代理到访问控制设置,你使用intercept-url
声明在 <http>
命名空间中的配置,保存信息(比如必须的角色)在你的JSP中。 这种方式也可以结合method
属性,提供HTTP method, 为了更详细的匹配。
这个标签允许访问当前的Authentication
对象, 保存在安全上下文中。它直接渲染一个对象的属性在JSP中。 所以,比如,如果Authentication
的 principal
属性是Spring Security的 UserDetails
对象的一个实例,就要使用 <sec:authentication property="principal.username" />
来渲染当前用户的名称。
当然,它不必使用JSP标签来实现这些功能,一些人更愿意在视图中保持逻辑越少越好。 你可以在你的MVC控制器中访问Authentication
对象 (通过调用SecurityContextHolder.getContext().getAuthentication()
) 然后直接在模型中添加数据,来渲染视图。
这个标签纸在使用Spring Security ACL模块时才可以使用。它检测一个用逗号分隔的 特定领域对象的需要权限列表。如果当前用户拥有这些权限的任何一个,标签内容就会被执行。 否则,就会被略过。一个例子可能像
<sec:accesscontrollist hasPermission="1,2" domainObject="someObject"> 这些将被显示,如果用户拥有指定对象的权限显示为"1"或"2"。 </sec:accesscontrollist>
权限会被传递到PermissionFactory
定义在application context中,把它们转换为ACL的 Permission
实例,所以他们可以使用 工厂支持的任何格式 - 不是必须使用整数,它们可以是字符串,像 READ
或者 WRITE
。 如果没有找到PermissionFactory
, 一个DefaultPermissionFactory
实例会被使用。 application context中的AclService
会被用来加载 对应的对象的Acl
实例。 Acl
会被调用,使用需要的权限来检测, 如果它们中的任何一个被授权了。
相关推荐
全注解 spring boot +spring security + mybatis+druid+thymeleaf+jsp+mysql+bootstrap 支持thymeleaf和jsp并存 全注解 spring boot spring security thymeleaf+jsp同时使用 mybatis druid mysql bootstrap 访问 ...
全注解 spring boot +spring security + thymeleaf+mybatis+druid+mysql+bootstrap 框架。 带数据库脚本和说明文件
30. JSP标签库 230 30.1声明Taglib 230 30.2授权标签 230 30.2.1禁用测试的标签授权 231 30.3认证标签 232 30.4 accesscontrollist标签 232 30.5 csrfInput标签 233 30.6 csrfMetaTags标签 233 31 Java认证和授权...
This module provides a new dialect called org.thymeleaf.extras.springsecurity3.dialect.SpringSecurityDialect or org.thymeleaf.extras.springsecurity4.dialect.SpringSecurityDialect (depending on the ...
19. JSP标签库 19.1. 声明Taglib 19.2. authorize标签 19.3. authentication 标签 19.4. accesscontrollist 标签 20. Java认证和授权服务(JAAS)供应器 20.1. 概述 20.2. 配置 20.2.1. JAAS ...
主要介绍了JSP 开发之Spring Security详解的相关资料,spring Security是一个能够为基于Spring的企业应用系统提供描述性安全访问控制解决方案的安全框架,需要的朋友可以参考下
20. JSP 标签库 20.1. 声明Taglib 20.2. authorize 标签 20.3. authentication 标签 20.4. accesscontrollist 标签 21. Java 认证和授权服务(JAAS)供应器 21.1. 概述 21.2. 配置 21.2.1. JAAS ...
Spring Security OTP插件 Spring Security OTP插件使用Spring Security向应用程序添加了一次性密码(OTP)功能。 一次性密码令牌可以用作认证的带外第二因素。 该插件支持通过电子邮件和SMS文本传输OTP令牌。 组件 ...
提高文本项目安全的小技巧。希望对大家有帮助
20. JSP标签库 20.1. 声明Taglib 20.2. authorize 标签 20.3. authentication 标签 20.4. accesscontrollist 标签 21. Java认证和授权服务(JAAS)供应器 21.1. 概述 21.2. 配置 21.2.1. JAAS ...
ecplise安装spring boot教程,spring boot2.1.4整合mybaits,整合jsp,整合security5文档和完成的实例demo
架构技术: struts2+spring3+hibernate4 + UI 组件(easyui)+Spring_security权限 配置思想: Convention 零配置(不需要任何配置文件) 优点; [1].代码生成器(单表的增删改查完美生成) 注意:包括JSP页面的生成...
Spring安全研究 基本安全功能 身份验证功能:检查应用程序用户的合法性。 授权功能:控制对应用程序资源或处理的访问。... Spring安全标签库 包含JSP标记库以使用认证信息或授权信息 CSRF预防功能以及与Spr
这是一个基于Spring Security框架的细粒度权限管理系统,使用Java语言开发,同时包含JavaScript、CSS、HTML等多种编程语言。该项目共包含2447个文件,其中主要文件类型包括JavaScript、PNG图片、CSS、HTML、JAR包、...
前端jsp、jquery、bootstrap,后端 spring、mybatis、Spring Security,集成在线考试、我的成绩、我的错题、资源大全、试卷管理等功能于一体的系统。 毕业设计是高等教育阶段学生在完成学业前所进行的一项重要学术...
将Spring Form Elements与JSP页面和MVC概念结合使用的最佳实践。 具有服务层和控制器对象的Spring MVC模式。 在带有Hibernate的MySql上进行CRUD操作以及对jdbc查询的注释示例 将Dispatcher Servlet与web.xml一起...
适合初学者使用,代码简单,未连接数据库,全部集成在.xml中。有注释,注释全面。可以进行二次开发。
Spring Security,Spring Boot,Spring Data JPA,HSQL,JSP的注册和登录示例 指南 先决条件 JDK 1.7或更高版本 Maven 3或更高版本 叠放 Spring安全 Sprint Boot Spring Data JPA Maven JSP HSQL 跑 mvn clean ...
simple login spring, mvc is also used and spring security is also applied and eclipse is used with tocat 6.5