若是咱們不用form-login說明登錄界面,springsecurity框架將自動爲咱們生成登錄界面spring
如今咱們不想用自動生成的登錄界面了,而想使用自定義的漂亮的登錄界面框架
則須要使用<security:form-login/>標籤jsp
login-page:指定登錄頁面ide
login-process-url:表單提交的地址url
password-parameter:表示登陸時密碼使用的是哪一個參數,默認是 「j_password
」spa
username-parameter:表示登陸時用戶名使用的是哪一個參數,默認是 「j_username
」code
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>