前后端分離+spring Security 操作其實成功了,但中途總是會拋出異常說沒有權限,利用swagger或者postman測試都不會有這種問題,
但通過前端測試時,后端打斷點時就會發現總是會請求兩次,一次沒有權限,一次檢測到有權限,雖然有異常,但是不影響使用
同一個請求,出現兩次權限驗證
第一次沒有權限
緊接着第二次就通過了
這是我自定義的AccessDecisionManager
后來發現是因為瀏覽器對復雜跨域請求的一種處理方式,在真正發送請求之前,會先進行一次預請求,也就是OPTIONS,OPTIONS的第一次請求,他的作用是用於試探性的服務器響應是否正確,即是否能接受真正的請求,所以到后端的時候會有一個Request Method參數是OPTIONS,還有一次就是我們真正的請求,比如get或是post請求方式,也就是兩次,第一次沒有token 所以會拋異常
所以只要在代碼中添加一個關於OPTIONS操作的權限管理就行了
問題解決