濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > JSP 開(kāi)發(fā)之Spring Security詳解

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

熱門(mén)標(biāo)簽:電銷(xiāo)機(jī)器人免培訓(xùn) 南通通訊外呼系統(tǒng)產(chǎn)品介紹 海外圖書(shū)館地圖標(biāo)注點(diǎn) 如何看懂地圖標(biāo)注點(diǎn) 潤(rùn)滑油銷(xiāo)售電銷(xiāo)機(jī)器人 給地圖標(biāo)注得傭金 自繪地圖標(biāo)注數(shù)據(jù) 電話機(jī)器人需要使用網(wǎng)絡(luò)嗎 外呼系統(tǒng)使用方法

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資源的用戶必須具有ROLE_ADMIN的權(quán)限 --> 
  intercept-url pattern="/admin.jsp" access="ROLE_ADMIN"/> 
  !--訪問(wèn)/**資源的用戶必須具有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>用戶:/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.

用戶名就是剛才部署的那個(gè)用戶名。什么?忘了。那好吧,我再給你指出來(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è)面就不同??梢栽囋嚨?nbsp;

以上就是JSP 開(kāi)發(fā)中Spring Security 的實(shí)例詳解,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

您可能感興趣的文章:
  • JSP 開(kāi)發(fā)之hibernate配置二級(jí)緩存的方法
  • Jsp+Servlet實(shí)現(xiàn)購(gòu)物車(chē)功能
  • java JSP開(kāi)發(fā)之Spring中Bean的使用
  • JSP制作簡(jiǎn)單登錄界面實(shí)例
  • jsp頁(yè)面驗(yàn)證碼完整實(shí)例
  • JSP Spring防止用戶重復(fù)登錄的實(shí)現(xiàn)方法
  • JSP中springmvc配置validator的注意事項(xiàng)
  • JSP開(kāi)發(fā)中Apache-HTTPClient 用戶驗(yàn)證的實(shí)例詳解

標(biāo)簽:銅川 廣州 內(nèi)江 樂(lè)山 黃石 貸款邀約 大連 南京

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP 開(kāi)發(fā)之Spring Security詳解》,本文關(guān)鍵詞  JSP,開(kāi),發(fā)之,Spring,Security,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JSP 開(kāi)發(fā)之Spring Security詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于JSP 開(kāi)發(fā)之Spring Security詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    阳泉市| 高陵县| 虞城县| 赤水市| 洪雅县| 竹山县| 泰宁县| 徐州市| 麻江县| 齐河县| 读书| 泸西县| 佛冈县| 双辽市| 惠东县| 启东市| 洛宁县| 勃利县| 忻城县| 合作市| 太谷县| 将乐县| 枝江市| 旺苍县| 开江县| 安西县| 兴隆县| 黔西| 武冈市| 高安市| 衡南县| 凌海市| 阿克陶县| 彭州市| 阳朔县| 珲春市| 江安县| 玉屏| 沁水县| 中阳县| 安顺市|