自定义表单的时候,两个输入框,一个账号,一个密码,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();