Spring Security無法調用接口錯誤的問題解決
之前在寫程序的時候,發(fā)現(xiàn)有個接口使用postmapping發(fā)送請求一直無法進行調用
@PostMapping("/user/login") public ResponseResult login(User user){ //登錄,這里登錄的時候需要傳入用戶名和密碼 System.out.println("user = "+user.toString()); return loginService.login(user); //調用LoginServiceImpl中的login方法 }
并且返回的一直是forbidden401,應該是沒有權限,但是奇怪的是,我在SecurityConfig之中權限已經(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 //關閉csrf .csrf().disable() //不通過Session獲取SecurityContext .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() //對于登錄接口允許匿名訪問 .antMatchers("/user/login").anonymous() //除上面外所有請求需要鑒權認證 .anyRequest().authenticated(); } //調用 //暴露自定義的AuthenticationManager @Bean @Override public AuthenticationManager authenticationManagerBean() throws Exception{ return super.authenticationManagerBean(); } }
經(jīng)過排查之后發(fā)現(xiàn),這里的SecurityConfig上面沒有加上@Configuration這個注解,導致SecurityConcig沒有被注入到Spring的容器之中,因此報錯
ps:如果發(fā)現(xiàn)傳入的User結果為null,嘗試著在參數(shù)前面加入@RequestBody這一個標簽
@PostMapping("/user/login") public ResponseResult login(@RequestBody User user){ //登錄,這里登錄的時候需要傳入用戶名和密碼 return loginService.login(user); //調用LoginServiceImpl中的login方法 }
到此這篇關于Spring Security無法調用接口錯誤的問題解決的文章就介紹到這了,更多相關Spring Security無法調用接口內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java swing讀取txt文件實現(xiàn)學生考試系統(tǒng)
這篇文章主要為大家詳細介紹了Java swing讀取txt文件實現(xiàn)學生考試系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06Java屬性文件操作之Properties與ResourceBundle詳解
這篇文章主要介紹了Java屬性文件操作之Properties與ResourceBundle詳解,兩個類都可以讀取屬性文件中以key/value形式存儲的鍵值對,ResourceBundle讀取屬性文件時操作相對簡單,需要的朋友可以參考下2023-11-11Java基于redis和mysql實現(xiàn)簡單的秒殺(附demo)
這篇文章主要介紹了Java基于redis和mysql實現(xiàn)簡單的秒殺(附demo),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02SpringBoot定時任務實現(xiàn)數(shù)據(jù)同步的方法
業(yè)務需求是,通過中臺調用api接口獲得,設備數(shù)據(jù),要求現(xiàn)實設備數(shù)據(jù)的同步,這篇文章主要介紹了SpringBoot定時任務實現(xiàn)數(shù)據(jù)同步的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08