天天看點

spring-security3 配置和使用 (一)(轉載)

最近項目中要使用到spring-security,可能研究的不夠透徹 這些知識點 都是從網上copy的 或許能對需要的朋友一些幫助。如若喜歡歡迎轉載!

1、在spring-security官網下載下傳最新jar然後拷貝jar到項目的lib下。

2、在classpath下添加security配置檔案,例如applicationContext-security.xml.網上現在大多都是2.0的schema. 要根據自己使用的版本而定.下面是3.0的schema.

Xml代碼 

<? xml   version = "1.0"   encoding = "UTF-8" ?>   

< beans:beans   xmlns = "http://www.springframework.org/schema/security"         xmlns:beans = "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.0.xsd" >   

  </ beans:beans >   

<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns="http://www.springframework.org/schema/security"

xmlns:beans="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.0.xsd">

</beans:beans>

3、然後在web.xml中添加配置,内容如下:

Xml代碼 

<!-- spring security  -->         

  < context-param >          

        < param-name > contextConfigLocation </ param-name >            

       < param-value >                classpath*:/applicationContext*.xml             </ param-value >        

 </ context-param >           

< 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 >       

          < listener >           

              < listener-class >                org.springframework.web.context.ContextLoaderListener          

  </ listener-class >         </ listener >   

<!-- spring security -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

classpath*:/applicationContext*.xml

</param-value>

</context-param>

<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>

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

配置起來很簡單,由于我的security是整合到現有項目中的.一些jar可能已經存在. 單獨做demo的朋友配置的時候可能會出現問題.

本想分開發掙點積分..但怕大家看起來累.. 就發到一起吧.. (*^__^*)

使用篇

1、建立login.jsp頁面.内容如下:

Html代碼 

< form   action = "<%=path %>/j_spring_security_check"   method = "post" >            USERNAME: < input   type = "text"   name = "j_username"   value = "${sessionScope['SPRING_SECURITY_LAST_USERNAME']}"   /> < br />            PASSWORD: < input   type = "password"   name = "j_password"   value = ""   /> < br />          

  < input   type = "checkbox"   name = "_spring_security_remember_me"   /> 兩周之内不必登陸 < br />          

  < input   type = "submit" >              

</ form >   

<form action="<%=path %>/j_spring_security_check" method="post">

USERNAME:<input type="text" name="j_username" value="${sessionScope['SPRING_SECURITY_LAST_USERNAME']}" /><br/>

PASSWORD:<input type="password" name="j_password" value="" /><br/>

<input type="checkbox" name="_spring_security_remember_me" />兩周之内不必登陸<br/>

<input type="submit">

</form>

j_spring_security_check : 為security驗證中心(不知道怎麼說合适.暫時這麼了解吧..).

j_username: 驗證使用者名;

j_password: 驗證密碼;

${sessionScope['SPRING_SECURITY_LAST_USERNAME']}:使用最後一次登入使用者名.

_spring_security_remember_me:記住我...