Spring Security無法調(diào)用接口錯誤的問題解決
之前在寫程序的時候,發(fā)現(xiàn)有個接口使用postmapping發(fā)送請求一直無法進行調(diào)用
@PostMapping("/user/login")
public ResponseResult login(User user){
//登錄,這里登錄的時候需要傳入用戶名和密碼
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對象注入Spring容器中
//SpringSecurity就會使用PasswordEncoder來進行校驗
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()
//對于登錄接口允許匿名訪問
.antMatchers("/user/login").anonymous()
//除上面外所有請求需要鑒權(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這個注解,導(dǎo)致SecurityConcig沒有被注入到Spring的容器之中,因此報錯
ps:如果發(fā)現(xiàn)傳入的User結(jié)果為null,嘗試著在參數(shù)前面加入@RequestBody這一個標(biāo)簽
@PostMapping("/user/login")
public ResponseResult login(@RequestBody User user){
//登錄,這里登錄的時候需要傳入用戶名和密碼
return loginService.login(user);
//調(diào)用LoginServiceImpl中的login方法
}到此這篇關(guān)于Spring Security無法調(diào)用接口錯誤的問題解決的文章就介紹到這了,更多相關(guān)Spring Security無法調(diào)用接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java數(shù)據(jù)結(jié)構(gòu)之線段樹詳解
線段樹是一種二叉搜索樹,與區(qū)間樹相似,它將一個區(qū)間劃分成一些單元區(qū)間,每個單元區(qū)間對應(yīng)線段樹中的一個葉結(jié)點。本文將介紹線段樹的Java實現(xiàn)代碼,需要的可以參考一下2022-01-01
Java swing讀取txt文件實現(xiàn)學(xué)生考試系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java swing讀取txt文件實現(xiàn)學(xué)生考試系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06
spring監(jiān)視器actuator配置應(yīng)用
這篇文章主要介紹了spring監(jiān)視器actuator配置應(yīng)用,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
Java屬性文件操作之Properties與ResourceBundle詳解
這篇文章主要介紹了Java屬性文件操作之Properties與ResourceBundle詳解,兩個類都可以讀取屬性文件中以key/value形式存儲的鍵值對,ResourceBundle讀取屬性文件時操作相對簡單,需要的朋友可以參考下2023-11-11
Java基于redis和mysql實現(xiàn)簡單的秒殺(附demo)
這篇文章主要介紹了Java基于redis和mysql實現(xiàn)簡單的秒殺(附demo),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
SpringBoot定時任務(wù)實現(xiàn)數(shù)據(jù)同步的方法
業(yè)務(wù)需求是,通過中臺調(diào)用api接口獲得,設(shè)備數(shù)據(jù),要求現(xiàn)實設(shè)備數(shù)據(jù)的同步,這篇文章主要介紹了SpringBoot定時任務(wù)實現(xiàn)數(shù)據(jù)同步的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08

