SpringSecurity自定義登錄頁面和跳轉頁面

若是咱們不用form-login說明登錄界面,springsecurity框架將自動爲咱們生成登錄界面spring

如今咱們不想用自動生成的登錄界面了,而想使用自定義的漂亮的登錄界面框架

則須要使用<security:form-login/>標籤jsp

login-page:指定登錄頁面ide

login-process-url:表單提交的地址url

password-parameter:表示登陸時密碼使用的是哪一個參數,默認是 「j_passwordspa

username-parameter:表示登陸時用戶名使用的是哪一個參數,默認是 「j_usernamecode

default-target-url:登錄成功之後跳轉的頁面,用該元素時,需設置always-use-default=trueorm

authentication-failure:登錄失敗之後跳轉的頁面xml

登錄成功和登錄失敗也能夠專門寫一個類,在類中指定跳轉的界面,而後配置一個bean經過ref指定對應處理頁面的bean,由於我以爲過於複雜,沒有采用這種方法,這裏也就提一下有這種方法blog

 

具體的springsecurity配置文件以下:

 1 <beans xmlns="http://www.springframework.org/schema/beans"
 2        xmlns:security="http://www.springframework.org/schema/security"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xsi:schemaLocation="http://www.springframework.org/schema/beans
 5           http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
 6           http://www.springframework.org/schema/security
 7           http://www.springframework.org/schema/security/spring-security-3.1.xsd">
 8 
 9         <!--
10         自定義表單,經過form-login標籤
11         authentication-failure-url指定登錄失敗之後應該跳轉的頁面
12         default-target-url指定登錄成功之後跳轉的頁面,默認的是index.jsp頁面
13         -->
14     <security:http auto-config="true">
15         <security:form-login login-page="/login.jsp"
16                              login-processing-url="/login.do" username-parameter="username"
17                              password-parameter="password"
18                              default-target-url="/successful.jsp"
19                              authentication-failure-url="/login_failure.jsp"
20                              always-use-default-target="true"
21         />
22         <!-- 表示匿名用戶能夠訪問 -->
23         <security:intercept-url pattern="/login*.jsp*"
24                                 access="IS_AUTHENTICATED_ANONYMOUSLY" />
25         <security:intercept-url pattern="/**" access="ROLE_USER" />
26     </security:http>
27 
28     <security:authentication-manager>
29         <security:authentication-provider>
30             <security:user-service>
31                 <security:user name="user" password="user" authorities="ROLE_USER"/>
32                 <security:user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN"/>
33             </security:user-service>
34         </security:authentication-provider>
35     </security:authentication-manager>
36 
37 </beans>

咱們須要給login.jsp放行,否則咱們將不能訪問到,放行有兩種方法,我選擇的是將access設置爲「IS_AUTHENTICATED_ANONYMOUSLY」,固然也能夠設置爲  「ROLE_ANONYMOUS

另一種是將security設置爲none,具體代碼以下:

1  <security:http security="none" pattern="/login.jsp" />
2    <security:http auto-config="true">
3       <security:form-login login-page="/login.jsp"
4          login-processing-url="/login.do" username-parameter="username"
5          password-parameter="password" />
6       <security:intercept-url pattern="/**" access="ROLE_USER" />
7    </security:http>
相關文章
相關標籤/搜索