第9章 保护spring应用 9.1 springSecurity

视图层保护 spring

导入标签库:<%@ taglib prefix="ss" uri="http://www.springframework.org/security/tags" %>浏览器

包含三个标签:安全

<springSecurity:authentication property="" var="" scope="">dom

访问当前用户认证对象的属性url

<springSecurity:accesscontrollist hasPermission="" domainObject="">spa

用于当前认证用户对特定的域对象具有某一指定的权限时,则渲染标签主体中的内容。orm

<springSecurity:authorize access="" ifAllGranted="" ifAnyGranted="" ifNotGranted="" method="" url="">对象

若是特定的安全性限制知足的话,则渲染标签主体中的内容ip

 

访问认证信息ci

对于<springSecurity:authentication>,最简单的一件事就是便利地访问用户认证信息。

property="principal.username"

authorities : 一组用于表示用户所授予权限的GrantedAuthority对象

credentials : 用于核实用户的凭据(一般为用户的密码)

details : 认证的附加信息(IP地址、证件序列号、回话ID等)

principal : 用户的主要信息对象

若是须要将值赋值给一个变量,只须要在var属性中指明变量的名字。变量默认是定义在页面做用域内的,若是想在其余做用域,如请求或会话做用域,能够经过scope属性来声明。

 

根据权限渲染

举个例子

<springSecurity:authorize access="isAuthenticated and principal.username = 'aries'" >

 <a href="/admin">administration</a>

</springSecurity:authorize>

可是没法阻止别人在浏览器的地址栏中手动输入/admin,不过能够在安全性配置文件中添加一个新的<intercept-url>以更加严格的约束/admin URL的安全性。

<intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN') and hasIpAddress('192.168.1.2')"  />

即管理功能被锁定了。URL地址获得了保护,而且到这个URL的连接在用户没有受权使用的状况下不会显示,可是为了作到这一点,须要在<intercept-url >和<springSecurity:authorize >标签中使用spel进行声明。以下:

<springSecurity:authorize url="/admin/**">

<spring:url value="/admin" var="admin_url"></spring:url>

 <a href="${admin_url} }">administration</a>

</springSecurity:authorize>

这里url属性所要作的事情,不像access属性那样明确声明安全性限制,url属性对一个给定的URL模式间接引用其安全性限制,因为在配置中已经为/admin声明了安全性限制,从而这里可使用url属性。

相关文章
相关标签/搜索