若是咱们不用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>