我已经创建了一个示例SOAPWebService项目(Spring Boot ),并尝试将Okta集成为用于身份验证的资源服务器。
我能够将应用程序部署到WebLogic,但是当使用SOAP UI测试服务时,即使头中没有包含令牌,它也会给出响应。
当我使用我的wsdl URL http://myhost:port/appservice/app. wsdl从浏览器访问WSDL时,我看到401错误,因此我认为它正在获取安全配置更改。但它不适用于SOAP请求,即使没有Okta标记,我也会得到响应。
是因为对于SOAP请求,我需要在安全配置java文件的顶部包含任何拦截器吗?还是我采用了错误的SOAP安全路径?有人能告诉我我遗漏了什么,或者给我指出正确的方向吗?WS-Security?或Okta资源服务器中的身份验证管理器中的令牌验证部分是否足以满足此要求?
我按照此文档创建了它。
我已经阅读了大部分与此和Spring文档相关的SO问题,但无法将缺失的点连接起来。请帮助我解决这个问题。在花了很多时间之后,我觉得我在兜圈子。
**更新:**我已通过执行以下操作启用了Spring Security调试日志
1.@启用Web安全(调试=true)
1.过滤器链代理服务器=调试
**UPDATE 2:**我没有对我的配置做任何大的更改,但是当我在本地嵌入式Tomcat上运行项目时,它开始工作了。为了在Tomcat上运行,我将打包从war更改为jar,在POM和Main类中排除Tomcat,我必须删除SpringBootServletInitializer和WebApplicationInitializer。就是这样。我用Okta承载令牌测试SOAP UI,它给了我响应。没有令牌,它没有给予我响应。
Spring安全性仅在WebLogic 12 c的情况下不起作用。我不知道要在WebLogic中起作用,我还缺少什么。当通过Tomcat部署时,请求将通过安全过滤器链中的所有Bean传递{ WebAsyncManagerIntegrationFilter、SecurityContextPersistenceFilter、HeaderWriterFilter、CsrfFilter、LogoutFilter、BearerTokenAuthenticationFilter、RequestCacheAwareFilter、SecurityContextHolderAwareRequestFilter、AnonymousAuthenticationFilter、会话管理筛选器、异常转换筛选器、筛选器安全侦听器}
但在WebLogic上,请求仅通过安全筛选器链中的前四个Bean传递{WebAsyncManagerIntegrationFilter、SecurityContextPersistenceFilter、HeaderWriterFilter、CsrfFilter}
1条答案
按热度按时间vpfxa7rd1#
我只是想更新我为这个问题找到的替代解决方案,为了完整性。Spring安全过滤器链不适用于Weblogic,而同样的方法在Tomcat中也适用,甚至适用于Weblogic版本12. 2. 1. 4。
我已经遵循了这个example,并实现了Okta过滤器,因为Spring Boot 版本在Weblogic 12.2.1.4中不工作。
感谢@Toerktumlare,我已经用logback-spring.xml实现了日志记录