欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決spring?security?loginProcessingUrl無效問題

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

spring security loginProcessingUrl無效

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

他的登陸頁面的接口是 /loginpage 這個前端頁面的登陸按鈕請求的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層寫了一個與前端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)這個接口無論如何都不會調用,我仔細觀察了他的security的配置有沒有問題,發(fā)現(xiàn)也沒有

此時的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(); // 關閉csrf

    }

按照我的想法和他的想法配置了loginProcessingUrl就應該在點擊登陸按鈕的是去請求我們自己寫的/login/doLogin這個接口,但是事實是沒有。

原因是什么呢

原因是security根本不會去請求我們自己寫的/login/doLogin這個接口,

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

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

至于后端接口怎么獲取當前登陸的用戶信息

請看下面代碼

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

實體類部分代碼如下

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

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

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

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

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

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

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

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

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

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

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

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

    Java 超詳細講解異常的處理

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

    Thymeleaf 3.0 自定義標簽方言屬性的實例講解

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

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

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

    如何解決websocket開啟多個頁面訪問同一個連接會失效的問題

    使用WebSocket時,若多個頁面訪問同一個WebSocket連接可能會導致連接失效,遇到這個問題時,可以通過在SpringBoot中使用@ServerEndpoint注解并添加@Component來解決,出現(xiàn)連接錯誤通常是因為WebSocket連接接收到的是一個GET請求
    2024-09-09
  • SpringBoot JPA懶加載失效的解決方案(親測有效)

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

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

    springboot中Excel文件下載踩坑大全

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

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

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

最新評論