亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決spring?security?loginProcessingUrl無效問題

 更新時(shí)間:2024年08月12日 09:05:39   作者:客?卿  
這篇文章主要介紹了解決spring?security?loginProcessingUrl無效問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

spring security loginProcessingUrl無效

近幾天被一個(gè)朋友問道了一個(gè)loginProcessingUrl設(shè)置后無效的問題。

他的登陸頁面的接口是 /loginpage 這個(gè)前端頁面的登陸按鈕請(qǐng)求的url是 /login/doLogin

前端頁面代碼如下:

<form action="/login/doLogin" method="post">

    <input type="text" name="username" />
    <input type="password" name="password"/>
    <button type="submit">登陸</button>

</form>

然后他在后端代碼的的controller層寫了一個(gè)與前端action相同的接口

代碼如下:

@RequestMapping(value = "/login/doLogin",method = RequestMethod.POST)
    @ResponseBody
    public Object adminlogindologin(String username,String password){
        System.out.println(username);
        System.out.println(password);
        return "成功";
    }

然后他發(fā)現(xiàn)這個(gè)接口無論如何都不會(huì)調(diào)用,我仔細(xì)觀察了他的security的配置有沒有問題,發(fā)現(xiàn)也沒有

此時(shí)的security配置代碼如下:

 @Override
    protected  void configure(HttpSecurity http) throws Exception {
        http
                .formLogin().loginProcessingUrl("/login/doLogin")
                .loginPage("/login")
                .defaultSuccessUrl("/admin/login123")
                .permitAll() // 開啟表單登錄并配置登錄接口
                .and()
                .authorizeRequests() // 開啟 HttpSecurity 配置

                .antMatchers("/admin/login","/login/doLogin")
                .permitAll()
                .antMatchers("/admin/**").hasRole("admin")// admin/**
                .and().csrf().disable(); // 關(guān)閉csrf

    }

按照我的想法和他的想法配置了loginProcessingUrl就應(yīng)該在點(diǎn)擊登陸按鈕的是去請(qǐng)求我們自己寫的/login/doLogin這個(gè)接口,但是事實(shí)是沒有。

原因是什么呢

原因是security根本不會(huì)去請(qǐng)求我們自己寫的/login/doLogin這個(gè)接口,

loginProcessingUrl的作用是用來攔截前端頁面對(duì)/login/doLogin這個(gè)的請(qǐng)求的,攔截到了就走它自己的處理流程(例如這個(gè)UserDetailsServiceloadUserByUsername這個(gè)方法,UserDetailsService是security的提供的一個(gè)接口,一般我們開發(fā)的時(shí)候需要去實(shí)現(xiàn)這個(gè)接口),所有我們自己后端寫的/login/doLogin這個(gè)接口有寫跟沒寫是一樣的。

所以我后來直接叫他不去設(shè)置loginProcessingUrl這個(gè)值了,然后前端登陸頁面的form表單的action=""就行

至于后端接口怎么獲取當(dāng)前登陸的用戶信息

請(qǐng)看下面代碼

//UserDetails是security提供的一個(gè)接口,一般實(shí)體類的用戶需要去實(shí)現(xiàn)它,
 UserDetails admin =  (UserDetails)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
 //我朋友的實(shí)體類叫Admin,于是下面這一句也是可以的
 Admin a = (Admin)admin;

實(shí)體類部分代碼如下

public class Admin implements UserDetails {
    private Integer admin_id/*管理員ID*/;

    private String admin_name/*管理員登錄名*/;

    private String admin_nickname/*管理員昵稱*/;

    private String admin_password/*管理員密碼*/;
	//省略get/set方法
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java多線程數(shù)據(jù)分頁處理實(shí)例講解

    java多線程數(shù)據(jù)分頁處理實(shí)例講解

    在本篇內(nèi)容里小編給大家分享了一篇關(guān)于java多線程數(shù)據(jù)分頁處理實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • Java多線程 線程狀態(tài)原理詳解

    Java多線程 線程狀態(tài)原理詳解

    這篇文章主要介紹了Java多線程 線程狀態(tài)原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Spring Cloud中配置客戶端示例詳解

    Spring Cloud中配置客戶端示例詳解

    這篇文章主要介紹了Spring Cloud中配置客戶端的相關(guān)知識(shí),本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • Java 超詳細(xì)講解異常的處理

    Java 超詳細(xì)講解異常的處理

    異常就是不正常,比如當(dāng)我們身體出現(xiàn)了異常我們會(huì)根據(jù)身體情況選擇喝開水、吃藥、看病、等 異常處理方法。 java異常處理機(jī)制是我們java語言使用異常處理機(jī)制為程序提供了錯(cuò)誤處理的能力,程序出現(xiàn)的錯(cuò)誤,程序可以安全的退出,以保證程序正常的運(yùn)行等
    2022-04-04
  • Thymeleaf 3.0 自定義標(biāo)簽方言屬性的實(shí)例講解

    Thymeleaf 3.0 自定義標(biāo)簽方言屬性的實(shí)例講解

    這篇文章主要介紹了Thymeleaf 3.0 自定義標(biāo)簽方言屬性的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Spring?Boot項(xiàng)目如何優(yōu)雅實(shí)現(xiàn)Excel導(dǎo)入與導(dǎo)出功能

    Spring?Boot項(xiàng)目如何優(yōu)雅實(shí)現(xiàn)Excel導(dǎo)入與導(dǎo)出功能

    在我們平時(shí)工作中經(jīng)常會(huì)遇到要操作Excel的功能,比如導(dǎo)出個(gè)用戶信息或者訂單信息的Excel報(bào)表,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot項(xiàng)目中如何優(yōu)雅實(shí)現(xiàn)Excel導(dǎo)入與導(dǎo)出功能的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 如何解決websocket開啟多個(gè)頁面訪問同一個(gè)連接會(huì)失效的問題

    如何解決websocket開啟多個(gè)頁面訪問同一個(gè)連接會(huì)失效的問題

    使用WebSocket時(shí),若多個(gè)頁面訪問同一個(gè)WebSocket連接可能會(huì)導(dǎo)致連接失效,遇到這個(gè)問題時(shí),可以通過在SpringBoot中使用@ServerEndpoint注解并添加@Component來解決,出現(xiàn)連接錯(cuò)誤通常是因?yàn)閃ebSocket連接接收到的是一個(gè)GET請(qǐng)求
    2024-09-09
  • SpringBoot JPA懶加載失效的解決方案(親測(cè)有效)

    SpringBoot JPA懶加載失效的解決方案(親測(cè)有效)

    這篇文章主要介紹了SpringBoot JPA懶加載失效的解決方案(親測(cè)有效),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • springboot中Excel文件下載踩坑大全

    springboot中Excel文件下載踩坑大全

    本文主要介紹了springboot中Excel文件下載,但是卻容易遇到很多坑,文中通過示例代碼介紹的非常詳細(xì),感興趣的小伙伴們可以參考一下
    2021-07-07
  • 使用SpringBoot實(shí)現(xiàn)微服務(wù)超時(shí)重試模式的示例

    使用SpringBoot實(shí)現(xiàn)微服務(wù)超時(shí)重試模式的示例

    這篇文章主要介紹了使用SpringBoot實(shí)現(xiàn)微服務(wù)超時(shí)重試模式的示例,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-11-11

最新評(píng)論