真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用SpringSecurity怎么自定義一個(gè)表單登錄功能

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)使用SpringSecurity怎么自定義一個(gè)表單登錄功能,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

平羅ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!

1.創(chuàng)建SpringSecurity項(xiàng)目

1.1 使用IDEA

先通過(guò)IDEA 創(chuàng)建一個(gè)SpringBoot項(xiàng)目 并且依賴SpringSecurity,Web依賴

使用SpringSecurity怎么自定義一個(gè)表單登錄功能

此時(shí)pom.xml會(huì)自動(dòng)添加


    org.springframework.boot
    spring-boot-starter-security

2.擴(kuò)展 WebSecurityConfigurerAdapter

WebSecurityConfigurerAdapter 是SpringSecurity 提供的用于我們擴(kuò)展自己的配置

?實(shí)現(xiàn)WebSecurityConfigurerAdapter經(jīng)常需要重寫(xiě)的:

1、configure(AuthenticationManagerBuilder auth);

2、configure(WebSecurity web);

3、configure(HttpSecurity http);

2.1 默認(rèn) WebSecurityConfigurerAdapter 為我們提供了一些基礎(chǔ)配置如下

protected void configure(HttpSecurity http) throws Exception {
  logger.debug("Using default configure(HttpSecurity). If subclassed this will potentially override subclass configure(HttpSecurity).");

  http
    .authorizeRequests()
      .anyRequest().authenticated()
      .and()
    .formLogin().and()
    .httpBasic();
}

2.2 創(chuàng)建自定義的 WebSecurityConfigurer

1.formLogin() 開(kāi)啟表單登錄,該方法會(huì)應(yīng)用 FormLoginConfigurer 到HttpSecurity上,后續(xù)會(huì)被轉(zhuǎn)換為對(duì)應(yīng)的Filter
2.loginPage() 配置自定義的表單頁(yè)面
3.authorizeRequests().anyRequest().authenticated(); 表示任何請(qǐng)求接口都要認(rèn)證**

@Configuration
@Slf4j
public class MyWebSecurityConfig extends WebSecurityConfigurerAdapter {

 

@Override
protected void configure(HttpSecurity http) throws Exception {

    http.csrf().disable()
      .formLogin()
      .loginPage("/mylogin.html")
      .and()
      .authorizeRequests().anyRequest().authenticated();
      
  }
}

2.3 mylogin.html



 
   
   Title
 
 
  

標(biāo)準(zhǔn)登錄頁(yè)面

  

表單登錄

                                                   登錄           
用戶名:
密碼:
 

3.訪問(wèn)自定義登錄頁(yè)面(注意有重定向過(guò)多問(wèn)題)

啟動(dòng)項(xiàng)目 并且直接訪問(wèn)

http://localhost:8080

會(huì)發(fā)現(xiàn)瀏覽器報(bào) 重定向次數(shù)過(guò)多,這是什么原因呢?

這是因?yàn)?我們上面配置了 loginPage("/mylogin.html") ,但是這個(gè)路徑它沒(méi)有被允許訪問(wèn),也就是當(dāng)重定向到/mylogin.html路徑后,還是會(huì)因?yàn)樾枰J(rèn)證 被重定向道 /mylogin.html 導(dǎo)致該錯(cuò)誤

使用SpringSecurity怎么自定義一個(gè)表單登錄功能

4.允許登錄頁(yè)面路徑訪問(wèn) antMatchers("/mylogin.html").permitAll()

只需要在配置的地方 添加 .antMatchers("/mylogin.html").permitAll() 允許這個(gè)路徑

  http.csrf().disable()
      .formLogin()
      .loginPage("/mylogin.html")
      .and()
      .authorizeRequests()
      .antMatchers("/mylogin.html").permitAll()
      .anyRequest().authenticated();

再次訪問(wèn),我們自定義的表單就顯示出來(lái)了(忽略樣式。。。)

使用SpringSecurity怎么自定義一個(gè)表單登錄功能

此時(shí)我們輸入用戶名 user 密碼 : 控制臺(tái)打印

Using generated security password: 6bf253eb-c785-42b6-b147-b0fe2971586e

發(fā)現(xiàn)又跳轉(zhuǎn)到 /mylogin.html頁(yè)面,這是因?yàn)?當(dāng)我們配置了 loginPage("/mylogin.html")之后 處理表單登錄的過(guò)濾器它所攔截的請(qǐng)求就不再是 /login (默認(rèn)是 /login) ,攔截的登錄請(qǐng)求地址變成了 和 loginPage一樣的 mylogin.html

此時(shí)如果將 action地址改成 /mylogin.html ,那么再登錄 就能成功

5.配置自定義登錄接口路徑 loginProcessingUrl

由于我們上面配置了 loginPage ,則對(duì)應(yīng)登錄接口路徑也變成了 loginPage所配置的 mylogin.html,但是當(dāng)我們不想使用這個(gè)作為接口路徑的時(shí)候,可以通過(guò)以下配置來(lái)修改

通過(guò) loginProcessingUrl 類配置處理登錄請(qǐng)求的路徑

 http.csrf().disable()
      .formLogin()
      .loginPage("/mylogin.html")
      .loginProcessingUrl("/auth/login")
      .and()
      .authorizeRequests()
      .antMatchers("/mylogin.html").permitAll()
      .anyRequest().authenticated();

記得和action 對(duì)應(yīng)

上述就是小編為大家分享的使用SpringSecurity怎么自定義一個(gè)表單登錄功能了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享名稱:使用SpringSecurity怎么自定義一個(gè)表單登錄功能
文章位置:http://weahome.cn/article/jjshch.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部