您好,登錄后才能下訂單哦!
現在我們來用Spring Security檢測一下登錄功能,添加在views下添加一個main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> 我已經登錄進來了! </body> </html>
在LoginController里添加登錄main的映射,這個方法說明請求main.do的時候,跳轉main
@RequestMapping(method=RequestMethod.GET,value="/main.do") public String toMain() { return "main"; }
我們知道前面登錄頁面的action請求為j_spring_security_check,因此我們要設置該請求應該跳轉到哪里,因此我們需要在dogstore-security.xml添加<form-login default-target-url="/main.do" />
<http auto-config="true" use-expressions="true"> <intercept-url pattern="/login.do" access="permitAll"/> <intercept-url pattern="/*" access="hasRole('ROLE_USER')"/> <form-login default-target-url="/main.do" /> </http>
這樣如果登錄頁面發送請求,default-target-url默認登錄成功后跳轉的url,還有其他屬性可以自己去查查,這樣我們用guest/guest登錄,就可以登錄進main.jsp。
順便我們來說說Spring Security實現remember-me功能,修改dogstore-security.xml配置文件,添加<remember-me>聲明。設置key屬性為jbcpPetStore:
<http auto-config="true" use-expressions="true"> <intercept-url pattern="/login.do" access="permitAll"/> <intercept-url pattern="/*" access="hasRole('ROLE_USER')"/> <form-login default-target-url="/main.do" /> <remember-me key="jbcpPetStore"/> </http>
修改登錄頁面remember-me的checkbox框
<label> <input type="checkbox" id="_spring_security_remember_me" name="_spring_security_remember_me"> Remember me? </label>
當我們再次登錄時,如果Remember Me被選中,一個Remember Me的cookie將會設置在用戶的瀏覽器中。
如果用戶關閉瀏覽器并重新打開訪問一個JBCP Pets站點上需要認證的頁面,他將不會再看到登錄頁了。請親自試一下——登錄并將Remember Me選項選中,收藏首頁,然后重啟瀏覽器并再次訪問首頁。你能發現你直接登錄成功并不再需要提供憑證。
Remember me功能設置了一個cookie在用戶的瀏覽器上,它包含一個Base64編碼的字符串,包含以下內容:
用戶的名字;
過期的日期/時間;
一個MD5的散列值包括過期日期/時間、用戶名和密碼;
應用的key值,是在<remember-me>元素的key屬性中定義的。
這些內容將被組合成一個cookie的值存儲在瀏覽器中以備后用。
可以修改兩個常用的配置來改變remember me功能的默認行為:
屬性 | 描述 |
Key | 為remember mecookie定義一個唯一的key值,以與我們的應用關聯 |
token-validity-seconds | 定義時間的長度(以秒計)。Remember me的cookie將在將被視為認證合法,并且也將用于設置cookie的過期時間。 |
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。