自定義表單的時候,兩個輸入框,一個賬號,一個密碼,input標簽中的name是默認固定的,不可以修改,修改后會導致無法正常登錄。
默認:
賬號:name=“username”
密碼:name=“password”
如果要修改的話,需要到configure(HttpSecurity http)方法中自己定義
.formLogin()
.usernameParameter("zyl")
.passwordParameter("zzz")
configure(HttpSecurity http)
同種功能的不同實現是可以重復配置的,一律以后面的為准
配置的接口無論是GetMapping,PostMapping都可以。
.defaultSuccessUrl("/defaultSuccess")
這個是默認從哪里進入的登錄界面,則成功后回到那個頁面 例如:我從http://localhost:8080/hello進入登錄界面,登錄成功后也回到hello界面
但是這個方法實際上還有個參數,alwaysUse,該參數默認為false,如果設置為true,url會在登錄成功后去往http://localhost:8080/defaultSuccess
.successForwardUrl("/successForward")
不管是從哪里進入的登錄界面,一律是跳轉到.loginProcessingUrl("/doLogin")的這個doLoginurl,只不過界面上的返回值是/successForward接口的返回值
.failureUrl("/failureUrl")
會去往http://localhost:8080/failureUrl
.failureForwardUrl("/failureForwardUrl")
會去往http://localhost:8080/doLogin(即loginProcessingUrl)
以上關於登錄成功和失敗的配置,有差別的知識url顯示的地址不同,返回值還是接口的內容。
需要注意一點:success的接口可以是@getMapping,但是failUrl的接口一定得是@PostMapping,@PostMapping對於以上配置是都可以的,但是@GetMapping對於fail的接口就不行了。
登出的接口默認是logout,可以通過
.logout().logoutRequestMatcher(new AntPathRequestMatcher("/exit12", "POST"))
但需要注意的一點,即使這個exit12沒有定義一個@RequestMapping的存在,也是可以直接請求的。
瀏覽器F12,在console中出入如下,發起post請求
var xhr = new XMLHttpRequest();
xhr.open("POST","/exit",true);
xhr.send();