Spring Security的<form>表单的一些细节以及configure(HttpSecurity http)的配置

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

 

posted on 2020-11-11 08:04  我欲皆真  阅读(1922)  评论(0编辑  收藏  举报

导航