我正在使用組合身份驗證和資源服務器。當我啓用@EnableResourceServer和@EnableAuthorizationServer時,我遇到了登錄頁面的問題
我測試並獲得認證與重定向觸發的登錄頁面,使用授權代碼等創建令牌一切正常。
但是,當我打開資源服務器時,redirct登錄頁面停止使用不同的安全設置相關問題。 我認爲這與ResourceServerConfigurerAdapter
和WebSecurityConfigurerAdapter
有一個configure(HttpSecurity http)
方法來覆蓋。 我試過只使用其中之一,甚至試圖讓他們都設置相同的設置等,但無法讓它正常工作。
比如我得到缺少模型CSRF的問題之一:
異常評估SpringEL的表情: 「_csrf.parameterName」 (登錄:45)
什麼推薦這樣做的方式?
此服務器的目的是: - 作爲一個OAuth認證服務器,主要與授權碼流,它會顯示一個登錄之後批准頁面,用戶 - 同樣託管REST API,它的OAuth用戶端將連接到使用訪問令牌訪問資源的登錄用戶
的安全配置是這樣的:
http
.authorizeRequests()
.antMatchers("/login", "/logout.do").permitAll()
.antMatchers("/oauth/**").permitAll()
.antMatchers("/myservice/api/**").authenticated()
.and()
.formLogin()
.loginProcessingUrl("/login.do")
.usernameParameter("name")
.loginPage("/login")
.and()
.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout.do"));
,登錄頁面是一個簡單的thymeleaf登錄頁面。
您是否啓用CSRF? – andre3wap
在@EnableResourceServer之前(並且只有@EnableAuthorizationServer)它默認會自動打開。 但是現在它似乎關閉了,可能是ResourceServerConfigurerAdapter中的默認值。 據我所知,它是在Spring安全中打開的,你明確地把它關掉了? (csrrf()。disable()等) 我想問題是,所有授權調用的CSRF必須爲ON,但關閉資源... –
我試圖爲WebSecurityConfigurerAdapter添加@Order(2)使其具有優先權,然後再次登錄。 然而,用於訪問REST API(即資源)的令牌認證不起作用,並且表現得像沒有經過認證(重定向到登錄)。 –