本文爲轉載學習html
原文連接:http://blog.csdn.net/dsundsun/article/details/11880743java
第四個例子也就是spring security3那本書中的第五章的例子。web
csdn下載:http://download.csdn.net/detail/dulei294948/6295933(包含完整的jar包)spring
忽然想說個閒事啊。作java或者什麼都行,可是必需要學一下uml設計。由於又一個很好的uml設計才能表達更多的想法。。安全
分享一個同事推薦給個人書:http://download.csdn.net/detail/dulei294948/6278559,沒事的時候能夠看看。。jsp
繼續學習spring security....性能
一些很好用的標籤:學習
舉例:url
配置文件:spa
<intercept-url pattern="/account/*.do" access="hasRole('ROLE_USER') and fullyAuthenticated"/>
jsp頁面中:
引入標籤
<%@ taglib prefix = "sec" uri = "http://www.springframework.org/security/tags"%>
使用
<sec:authorize url="/account/home.do"> <c:url value="/account/home.do" var="accountUrl"/> <li><a href="${accountUrl}">My Account</a></li> </sec:authorize>
【注意的是,HTTP方法應該與<intercept-url>安全聲明中的一致,不然它們將不會按照你預期的進行匹配。另外,注意URL應該是對於web應用上下文根的相對路徑(如同URL訪問規則同樣)。】
使用標籤之後,就能夠輕鬆的過濾這些訪問的url和配置文件中的權限配置是否一致,一致的話就才能夠顯示。固然這個authorize標籤還支持spEL表達式的配置:
<sec:authorize access="hasRole('ROLE_USER') and fullyAuthenticated"> <c:url value="/account/home.do" var="accountUrl"/> <li><a href="${accountUrl}">My Account</a> (with 'access' attr)</li> </sec:authorize>
這讓我以爲用起來更方便的多。 (看來Spring security爲咱們考慮的很全面了。)
書中這樣描述以上標籤 :上邊的標籤是使用Spring security 3.x的功能,咱們也可使用spring security2的功能。。。 而後咱們去看看authorize還有什麼用法呢?
<sec:authorize ifNotGranted="ROLE_USER"> <c:url value="/login.do" var="loginUrl"/> <li><a href="${loginUrl}">Log In</a></li> </sec:authorize>
若是你如今以匿名用戶試圖訪問站點,將會看到一個指向登陸form 的連接。
<sec:authorize ifAnyGranted="ROLE_USER"> <c:url value="/logout" var="logoutUrl"/> <li><a href="${logoutUrl}">Log Out</a></li> </sec:authorize>
注意的是ifAnyGranted 屬性容許是以逗號分隔的角色集合來肯定適當的匹配結果,用戶只須要擁有角色中的任意一個標籤中的內容就會渲染。
<sec:authorize ifAllGranted="ROLE_USER,ROLE_CUSTOMER"> <c:url value="/account/orders.do" var="ordersUrl"/> <li><a href="${ordersUrl}">My Orders</a></li> </sec:authorize>
咱們可以看到authorize標籤的多種語法,以在不一樣的環境下使用。注意的是咱們在前面講到的三個屬性能夠組合使用。如ifNotGranted 和ifAnyGranted 屬性可以聯合使用以提供稍微複雜的Boolean等式。
看到了spring security2和3這幾種用法,我發現,其實使用spring security3能夠更好的完成操做(固然沒有說哪一個好用或很差用),咱們能夠經過spring security3的authorize讓配置儘可能使用spEL表達式的方式。(我我的以爲用起來會很方便。)
大概先 這樣, 咱們先了解一下,起碼spring security給咱們現實層的實現提供了不少便利啊。 回來再繼續吧。 這兩天確實看書看的有點累。
不過我仍是但願能在最近這些日子趕忙把spring security看完。呵呵。差的知識太多了。趕忙補補哈。