視圖層保護 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屬性。