国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JSP > 正文

JSP 開(kāi)發(fā)之Spring Security詳解

2024-09-05 00:18:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
Spring安全性是一個(gè)安全框架,為基于Spring的應(yīng)用程序提供聲明性安全保護(hù),它可以在Web請(qǐng)求級(jí)別和方法調(diào)用級(jí)別處理身份卡的身份驗(yàn)證和授權(quán),接下來(lái)就讓錯(cuò)新技術(shù)頻道小編帶大家一起去看看吧!

JSP 開(kāi)發(fā)之Spring Security詳解

前言:

spring Security是一個(gè)能夠?yàn)榛赟pring的企業(yè)應(yīng)用系統(tǒng)提供描述性安全訪問(wèn)控制解決方案的安全框架。它提供了一組可以在Spring應(yīng)用上下文中配置的Bean,充分利用了Spring IoC(依賴(lài)注入,也稱(chēng)控制反轉(zhuǎn))和AOP(面向切面編程)功能,為應(yīng)用系統(tǒng)提供聲明式的安全訪問(wèn)控制功能,減少了為企業(yè)系統(tǒng)安全控制編寫(xiě)大量重復(fù)代碼的工作。

Spring Security 的前身是 Acegi Security ,是 Spring 項(xiàng)目組中用來(lái)提供安全認(rèn)證服務(wù)的框架。Spring Security 為基于J2EE企業(yè)應(yīng)用軟件提供了全面安全服務(wù)。特別是使用領(lǐng)先的J2EE解決方案-Spring框架開(kāi)發(fā)的企業(yè)軟件項(xiàng)目。

功能

Spring Security對(duì)Web安全性的支持大量地依賴(lài)于Servlet過(guò)濾器。這些過(guò)濾器攔截進(jìn)入請(qǐng)求,并且在應(yīng)用程序處理該請(qǐng)求之前進(jìn)行某些安全處理。 Spring Security提供有若干個(gè)過(guò)濾器,它們能夠攔截Servlet請(qǐng)求,并將這些請(qǐng)求轉(zhuǎn)給認(rèn)證和訪問(wèn)決策管理器處理,從而增強(qiáng)安全性。根據(jù)自己的需要,可以使用表7.4中所列的幾個(gè)過(guò)濾器來(lái)保護(hù)自己的應(yīng)用程序。

如果使用過(guò)Servlet過(guò)濾器,那么知道要讓它們生效,就必須在Web應(yīng)用程序的web.xml文件中使用<filter> 和<filter-mapping>元素配置它們。雖然這樣做能起作用,但是它并不適用于使用依賴(lài)注入進(jìn)行的配置。   

FilterToBeanProxy是一個(gè)特殊的Servlet過(guò)濾器,它本身做的工作并不多,而是將自己的工作委托給Spring應(yīng)用程序上下文 中的一個(gè)Bean來(lái)完成。被委托的Bean幾乎和其他的Servlet過(guò)濾器一樣,實(shí)現(xiàn)javax.servlet.Filter接 口,但它是在Spring配置文件而不是web.xml文件中配置的。   

實(shí)際上,F(xiàn)ilterToBeanProxy代理給的那個(gè)Bean可以是javax.servlet.Filter的任意實(shí)現(xiàn)。這可以是 Spring Security的任何一個(gè)過(guò)濾器,或者它可以是自己創(chuàng)建的一個(gè)過(guò)濾器。但是正如本書(shū)已經(jīng)提到的那樣,Spring Security要求至少配置四個(gè)而且可能一打或者更多的過(guò)濾器

通過(guò)在許多項(xiàng)目中實(shí)踐應(yīng)用以及社區(qū)的貢獻(xiàn),如今的Spring Security已經(jīng)成為Spring Framework下最成熟的安全系統(tǒng),它為我們提供了強(qiáng)大而靈活的企業(yè)級(jí)安全服務(wù),如:

  • ?????????????認(rèn)證授權(quán)機(jī)制
  • ???????????? Web資源訪問(wèn)控制
  • ?????? ??? ? 業(yè)務(wù)方法調(diào)用訪問(wèn)控制
  • ??????????? 領(lǐng)域?qū)ο笤L問(wèn)控制Access Control List(ACL)
  • ???????? ?? 單點(diǎn)登錄(Central Authentication Service)
  • ??????? ??? X509認(rèn)證
  • ??????? ??? 信道安全(Channel Security)管理等功能

簡(jiǎn)單例子

1、創(chuàng)建web工程springSecurity3

2、把從spring網(wǎng)站下載的spring-security-3.1.0.RELEASE解壓,并將其中的spring-security-samples-contacts-3.1.0.RELEASE.war解壓,將jar包放到lib目錄下。

3、修改配置web.xml如下:

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5"    xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">      <!--加載Spring XML配置文件 -->   <context-param>     <param-name>contextConfigLocation</param-name>     <param-value>       classpath:securityConfig.xml           </param-value>   </context-param>      <!-- Spring Secutiry3.1的過(guò)濾器鏈配置 -->   <filter>   <filter-name>springSecurityFilterChain</filter-name>   <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>   </filter>    <filter-mapping>   <filter-name>springSecurityFilterChain</filter-name>   <url-pattern>/*</url-pattern>   </filter-mapping>      <!-- Spring 容器啟動(dòng)監(jiān)聽(tīng)器 -->   <listener>     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>   </listener>        <welcome-file-list>   <welcome-file>index.jsp</welcome-file>  </welcome-file-list> </web-app> 

4、在src下面創(chuàng)建securityConfig.xml文件內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?> <b:beans xmlns="http://www.springframework.org/schema/security" xmlns:b="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd             http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">    <!--登錄頁(yè)面不過(guò)濾 --> <http pattern="/login.jsp" security="none"/> <http access-denied-page="/accessDenied.jsp">   <form-login login-page="/login.jsp"/>   <!--訪問(wèn)/admin.jsp資源的用戶(hù)必須具有ROLE_ADMIN的權(quán)限 -->   <intercept-url pattern="/admin.jsp" access="ROLE_ADMIN"/>   <!--訪問(wèn)/**資源的用戶(hù)必須具有ROLE_USER的權(quán)限 --> <intercept-url pattern="/**" access="ROLE_USER"/> <session-management>   <concurrency-control max-sessions="1" error-if-maximum-exceeded="false"/> </session-management> </http> <authentication-manager> <authentication-provider>   <user-service>     <user name="john" password="john" authorities="ROLE_USER" />     <user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" />                 <user name="guest" password="guest" authorities="ROLE_GUEST" />    </user-service> </authentication-provider> </authentication-manager> </b:beans> 

5、在WebRoot中創(chuàng)建login.jsp內(nèi)容如下:

<body>   <form action="j_spring_security_check" method="POST">     <table>       <tr>         <td>用戶(hù):</td>         <td><input type='text'name='j_username'></td>       </tr>       <tr>         <td>密碼:</td>         <td><input type='password'name='j_password'></td>       </tr>       <tr>         <td><input name="reset"type="reset"></td>         <td><input name="submit"type="submit"></td>       </tr>     </table>   </form> </body> 

6、在WebRoot中創(chuàng)建accessDenied.jsp,

<body>  您的訪問(wèn)被拒絕,無(wú)權(quán)訪問(wèn)該資源!<br> </body> 

? 創(chuàng)建admin.jsp內(nèi)容如下:

<body> 歡迎來(lái)到管理員頁(yè)面. <br> </body> 

?修改index.jsp內(nèi)容如下:

<body>     這是首頁(yè),歡迎<sec:authentication property="name"/>!<br>   <a href="admin.jsp" rel="external nofollow" >進(jìn)入admin頁(yè)面</a>   <a href="other.jsp" rel="external nofollow" >進(jìn)入其它頁(yè)面</a>   </body>

好了,部署項(xiàng)目,并訪問(wèn)index.jsp.

用戶(hù)名就是剛才部署的那個(gè)用戶(hù)名。什么?忘了。那好吧,我再給你指出來(lái)

<user name="john" password="john" authorities="ROLE_USER" /> <user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" /> 

權(quán)限不同訪問(wèn)的頁(yè)面就不同。可以試試的?

以上就是JSP 開(kāi)發(fā)之Spring Security詳解,如有疑問(wèn)可以給錯(cuò)新技術(shù)頻道留言,感謝閱讀,希望能幫助到大家。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 四子王旗| 全南县| 灵璧县| 周口市| 仙桃市| 繁峙县| 剑川县| 三穗县| 襄汾县| 黑河市| 靖西县| 乌兰察布市| 浦北县| 抚远县| 丰顺县| 峡江县| 南投县| 长兴县| 大田县| 黄浦区| 武邑县| 句容市| 霍城县| 浦东新区| 泸州市| 孝义市| 梓潼县| 平遥县| 万全县| 宣汉县| 合水县| 时尚| 曲沃县| 巴林右旗| 衡东县| 额济纳旗| 天全县| 海兴县| 潍坊市| 华坪县| 五河县|