Spring Security無(wú)法調(diào)用接口錯(cuò)誤的問題解決
之前在寫程序的時(shí)候,發(fā)現(xiàn)有個(gè)接口使用postmapping發(fā)送請(qǐng)求一直無(wú)法進(jìn)行調(diào)用
@PostMapping("/user/login")
public ResponseResult login(User user){
//登錄,這里登錄的時(shí)候需要傳入用戶名和密碼
System.out.println("user = "+user.toString());
return loginService.login(user);
//調(diào)用LoginServiceImpl中的login方法
}并且返回的一直是forbidden401,應(yīng)該是沒有權(quán)限,但是奇怪的是,我在SecurityConfig之中權(quán)限已經(jīng)打開了
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public PasswordEncoder passwordEncoder(){
//只需要把BCryptPasswordEncoder對(duì)象注入Spring容器中
//SpringSecurity就會(huì)使用PasswordEncoder來進(jìn)行校驗(yàn)
return new BCryptPasswordEncoder();
}
//自定義AuthenticationManager
@Override
protected void configure(HttpSecurity http) throws Exception {
System.out.println("###begin configure");
http
//關(guān)閉csrf
.csrf().disable()
//不通過Session獲取SecurityContext
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
//對(duì)于登錄接口允許匿名訪問
.antMatchers("/user/login").anonymous()
//除上面外所有請(qǐng)求需要鑒權(quán)認(rèn)證
.anyRequest().authenticated();
}
//調(diào)用
//暴露自定義的AuthenticationManager
@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception{
return super.authenticationManagerBean();
}
}經(jīng)過排查之后發(fā)現(xiàn),這里的SecurityConfig上面沒有加上@Configuration這個(gè)注解,導(dǎo)致SecurityConcig沒有被注入到Spring的容器之中,因此報(bào)錯(cuò)
ps:如果發(fā)現(xiàn)傳入的User結(jié)果為null,嘗試著在參數(shù)前面加入@RequestBody這一個(gè)標(biāo)簽
@PostMapping("/user/login")
public ResponseResult login(@RequestBody User user){
//登錄,這里登錄的時(shí)候需要傳入用戶名和密碼
return loginService.login(user);
//調(diào)用LoginServiceImpl中的login方法
}到此這篇關(guān)于Spring Security無(wú)法調(diào)用接口錯(cuò)誤的問題解決的文章就介紹到這了,更多相關(guān)Spring Security無(wú)法調(diào)用接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
gradle配置國(guó)內(nèi)鏡像的實(shí)現(xiàn)
這篇文章主要介紹了gradle配置國(guó)內(nèi)鏡像的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Java編寫程序之輸入一個(gè)數(shù)字實(shí)現(xiàn)該數(shù)字階乘的計(jì)算
這篇文章主要介紹了Java編寫程序之輸入一個(gè)數(shù)字實(shí)現(xiàn)該數(shù)字階乘的計(jì)算,本文通過實(shí)例代碼給大家介紹的非常想詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
SpringBoot項(xiàng)目引入MCP的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot項(xiàng)目引入MCP的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
Java中實(shí)現(xiàn)線程間通信的實(shí)例教程
線程通信的目標(biāo)是使線程間能夠互相發(fā)送信號(hào),另一方面線程通信使線程能夠等待其他線程的信號(hào),這篇文章主要給大家介紹了關(guān)于Java中實(shí)現(xiàn)線程間通信的相關(guān)資料,本文通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
Java之獲取客戶端真實(shí)IP地址的實(shí)現(xiàn)
在開發(fā)工作中,我們常常需要獲取客戶端的IP,本文主要介紹了Jav之獲取客戶端真實(shí)IP地址的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12
redis中存儲(chǔ)list<map>,list<entity>的處理
本文主要介紹了redis中存儲(chǔ)list<map>,list<entity>的處理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
使用React和Java實(shí)現(xiàn)文本摘要小工具
本文將詳細(xì)介紹如何使用 React 和 Java 搭建一個(gè)小型文本摘要工具,并基于 Hugging Face 提供的 API 來實(shí)現(xiàn)智能摘要功能,感興趣的可以了解下2024-11-11

