簡體   English   中英

帶有 SOAP Web 服務的 Spring Security 在 Tomcat 中有效,但在 WebLogic 中無效

[英]Spring Security with SOAP web service is working in Tomcat, but not in WebLogic

我創建了一個示例 SOAP Web 服務項目(spring boot)並嘗試將 Okta 集成為資源服務器以進行身份​​驗證。

我能夠將應用程序部署到 WebLogic,但是在使用 SOAP UI 測試服務時,即使標頭中沒有包含令牌,它也會給出響應。

當我使用我的 wsdl url http://myhost:port/appservice/app.wsdl 從瀏覽器訪問 WSDL 時,我看到 401 錯誤,所以我認為它正在獲取安全配置​​更改。 但它不適用於 SOAP 請求,即使沒有 Okta 令牌,我也會得到響應。

是因為對於 SOAP 請求,我是否需要在 Security Config java 文件之上包含任何攔截器。 還是我在使用 SOAP 時采取了錯誤的安全途徑。 有人可以讓我知道我錯過了什么或指出我正確的方向。 令牌驗證是 WS-Security 的一部分嗎? 或 Okta 資源服務器中的身份驗證管理器是否足以滿足此要求?

我按照這個文檔來創建它。

我已閱讀與此文檔和 spring 文檔相關的大多數 SO 問題,但無法連接缺失的點。 請幫我解決一下這個。 在花了很多時間之后,我覺得我在繞圈子。

更新:我通過執行以下操作啟用了 Spring Security 調試日志

  1. @EnableWebSecurity(debug=true)
  2. logging.level.org.springframework.security.web.FilterChainProxy=DEBUG

UPDATE2:我沒有對我的配置進行任何大的更改,但是當我在本地的嵌入式 tomcat 上運行項目時,它開始工作了。 為了在 Tomcat 上運行,我將包裝從 war 更改為 jar,在我的 POM 和 Main 類中排除了 Tomcat,我必須刪除 SpringBootServletInitializer 和 WebApplicationInitializer。 而已。 我用 Okta 不記名令牌測試了 SOAP UI,它給了我響應。 沒有令牌,它沒有給我回應。

Spring Security 僅在 WebLogic12c 的情況下不起作用。 我不知道為了在 WebLogic 中工作而缺少什么。 當通過 Tomcat 部署時,請求通過 Security Filter Chain { WebAsyncManagerIntegrationFilter, SecurityContextPersistenceFilter, HeaderWriterFilter, CsrfFilter, LogoutFilter, BearerTokenAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, FilterSecurityInterceptor}

但在 WebLogic 上,請求僅通過 Security Filter Chain {WebAsyncManagerIntegrationFilter, SecurityContextPersistenceFilter, HeaderWriterFilter, CsrfFilter} 中的前四個 bean 傳遞

為了完整起見,我只是想更新我為這個問題找到的替代解決方案。 Spring Security Filter 鏈不適用於 Weblogic,而在 Tomcat 中同樣適用,即使對於 Weblogic 版本 12.2.1.4 也是如此。

我遵循了這個示例,並實現了 Okta 過濾器,因為 Spring Boot 版本在 Weblogic 12.2.1.4 中不起作用。

感謝@Toerktumlare,我已經使用 logback-spring.xml 實現了日志記錄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM