Spring Security無(wú)法調(diào)用接口錯(cuò)誤的問(wèn)題解決
之前在寫程序的時(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)該是沒(méi)有權(quán)限,但是奇怪的是,我在SecurityConfig之中權(quán)限已經(jīng)打開(kāi)了
public class SecurityConfig extends WebSecurityConfigurerAdapter { @Bean public PasswordEncoder passwordEncoder(){ //只需要把BCryptPasswordEncoder對(duì)象注入Spring容器中 //SpringSecurity就會(huì)使用PasswordEncoder來(lái)進(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() //不通過(guò)Session獲取SecurityContext .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() //對(duì)于登錄接口允許匿名訪問(wèn) .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)過(guò)排查之后發(fā)現(xiàn),這里的SecurityConfig上面沒(méi)有加上@Configuration這個(gè)注解,導(dǎo)致SecurityConcig沒(méi)有被注入到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ò)誤的問(wèn)題解決的文章就介紹到這了,更多相關(guān)Spring Security無(wú)法調(diào)用接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解java倒計(jì)時(shí)三種簡(jiǎn)單實(shí)現(xiàn)方式
這篇文章主要介紹了詳解java倒計(jì)時(shí)三種簡(jiǎn)單實(shí)現(xiàn)方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09Java實(shí)現(xiàn)lucene搜索功能的方法(推薦)
下面小編就為大家?guī)?lái)一篇Java實(shí)現(xiàn)lucene搜索功能的方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12Java數(shù)據(jù)結(jié)構(gòu)之線段樹(shù)詳解
線段樹(shù)是一種二叉搜索樹(shù),與區(qū)間樹(shù)相似,它將一個(gè)區(qū)間劃分成一些單元區(qū)間,每個(gè)單元區(qū)間對(duì)應(yīng)線段樹(shù)中的一個(gè)葉結(jié)點(diǎn)。本文將介紹線段樹(shù)的Java實(shí)現(xiàn)代碼,需要的可以參考一下2022-01-01Java swing讀取txt文件實(shí)現(xiàn)學(xué)生考試系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java swing讀取txt文件實(shí)現(xiàn)學(xué)生考試系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06通過(guò)實(shí)例了解Spring中@Profile的作用
這篇文章主要介紹了通過(guò)實(shí)例了解Spring中@Profile的作用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11spring監(jiān)視器actuator配置應(yīng)用
這篇文章主要介紹了spring監(jiān)視器actuator配置應(yīng)用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07Java屬性文件操作之Properties與ResourceBundle詳解
這篇文章主要介紹了Java屬性文件操作之Properties與ResourceBundle詳解,兩個(gè)類都可以讀取屬性文件中以key/value形式存儲(chǔ)的鍵值對(duì),ResourceBundle讀取屬性文件時(shí)操作相對(duì)簡(jiǎn)單,需要的朋友可以參考下2023-11-11Java基于redis和mysql實(shí)現(xiàn)簡(jiǎn)單的秒殺(附demo)
這篇文章主要介紹了Java基于redis和mysql實(shí)現(xiàn)簡(jiǎn)單的秒殺(附demo),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02SpringBoot定時(shí)任務(wù)實(shí)現(xiàn)數(shù)據(jù)同步的方法
業(yè)務(wù)需求是,通過(guò)中臺(tái)調(diào)用api接口獲得,設(shè)備數(shù)據(jù),要求現(xiàn)實(shí)設(shè)備數(shù)據(jù)的同步,這篇文章主要介紹了SpringBoot定時(shí)任務(wù)實(shí)現(xiàn)數(shù)據(jù)同步的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08