问题标签 [spring-saml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - 使用 Spring SAML 处理 SAML 响应
我使用Spring SAML开发了一个服务提供者。我已经配置了几个IdP,每个都有不同的属性命名约定。
- 我可以在成功的AuthN过程之后(在Tomcat的
logs/catalina.out
文件上)记录整个SAML 响应吗? - 是否有一些本机功能来定义某个 IdP
EntityID
和映射返回的属性之间的关联userID
? - 我也在阅读OID 格式:如何正确解码这种数据?
更新:
关于第一个问题,根据文档,我设置了调试日志和身份验证日志,如下所示:
然后,通过定义 alog4j.properties
如下:
并通过正确配置 Mavenpom.xml
尽管如此,完整的 SAML 响应并没有出现(我期待的是 XML 消息)。输出如下:
请注意,最后两行是我手动定义的。
java - 使用 Spring SAML 从 https 加载元数据
我想通过使用https协议从网络导入一些元数据:
通过阅读文档,我发现了这一步:
默认情况下,使用基于 HTTP 的提供程序通过 HTTPS 加载元数据会执行 JDK 中配置的信任验证。如果您想在 keyStore 中使用证书,请添加以下 bean 来更改 HTTP 客户端使用的 socketFactory:
在 Java Config 中转换,变为:
但是org.springframework.security.saml.trust.httpclient.TLSProtocolSocketFactory
找不到类结果。我正在使用Spring SAML的版本1.0.0-RC2
。
难道我做错了什么?
如何修复此错误并根据需要加载元数据?
更新
通过使用 SNAPSHOT 存储库,我可以使用 TLSProtocolSocketFactory 类。我已将 SSOCircle 的证书导入到我的密钥库中,但尽管如此,应用程序仍返回如下错误:
更新 2
我已经根据您的建议修复了我的代码。我已将所有证书导入密钥库,但在启动时应用程序返回此错误:
请注意,使用的证书由 GoDaddy 验证。
java - Weblogic 12c 上的 Spring SAML
我目前正在开发一个使用 Spring SAML ( http://projects.spring.io/spring-security-saml/ ) 项目作为我们身份验证的一部分的应用程序。我知道它仍在 RC 中,但我们正在开发的应用程序也是如此。当部署到 Tomcat7 时,我们已经集成了库并且功能齐全,但在部署到 Weblogic 12c (12.0.1.2) 时遇到了问题。在没有抛出任何错误的 Weblogic 上,断言值将被解密为空无错误。
问题似乎出在 Xerces 库中。据我所知,Spring SAML(由于 OpenSAML)需要 2.10.0,但 Weblogic 提供了 2.8.0 的 Xerces 库。我试图通过在项目 WEB-INF/lib 文件夹。这修复了 Spring SAML 的解密问题,但破坏了 Weblogics 解析 JSP 页面的能力。我在下面包含了未升级和升级的 Xerces 异常的部分堆栈跟踪。如果有人知道如何正确解决此问题,以便 Spring SAML 可以在不破坏默认功能的情况下运行 Weblogic,我将不胜感激。
这是更新 Xerces 之前的堆栈跟踪
这是将 Xerces 更新到 2.10.0 后的堆栈跟踪。
spring-security - 打开和关闭 Spring Security SAML 的方法
除了其他身份验证机制之外,我的应用程序中还有一个非常标准的 spring security saml 实现。开箱即用的 SAML 不会被配置,但可以通过表单进行配置,因此默认情况下应该禁用 SAML。我希望能够轻松地打开/关闭 SAML,但不确定最好的方法是什么。
似乎一种方法是做一个自定义FilterChainProxy,如果我检查是否启用了saml,如果启用则忽略samlFilter链(如何从Spring Security中的默认过滤器堆栈中删除一个过滤器?),并为元数据生成器过滤器。
任何建议都会很棒。
这是我的配置:
元数据生成器过滤器:
萨姆过滤器:
编辑:这是我的实现,它有点骇人听闻并且依赖于不推荐使用的方法,但它可以工作
下面的代码片段禁用 MetadataGeneratorFilter:
还有自动装配的 samlFilter / FilterChainMap。如果启用了 saml,我会保留这个链,如果它被禁用,我会在我的服务中将链设置为启用/禁用 saml 的空映射。
初始化后,我得到 filterchainmap 值:
在下面的方法中,我将过滤器链映射设置为 spring xml 中提供的原始映射(如果启用)或空映射(如果禁用)。
spring - SAML 端点与使用 roor 目录不匹配
为了设置我的服务提供者的 SAML 上下文,我使用如下配置:
它返回此错误(不需要“斜线”):
我该如何解决?
spring - Tomcat 上的 Spring Security SAML 元数据 URL
我正在开发一个基于 java 的 Web 应用程序,在 Tomcat 服务器上使用 Spring Security SAML 实现 SSO。此应用程序将扮演服务提供者角色 (SP)。检索此 SP 元数据的默认 Spring URL 是:
这工作得很好,按预期返回元数据 XML 文件。但是,当我将DefaultServlet servlet-mappings 添加到 web.xml 时遇到了问题。甚至只是一些基本的东西:
如果 web.xml 中存在一个或多个默认 servlet 映射,则上述 URL 将返回 404。任何人都知道可能导致此问题的原因并有可能的解决方案吗?
更新:我已将上面的确切 servlet 映射放在 Spring Security SAML 示例应用程序中,它还阻止元数据 URL 工作。如果我将其注释掉或删除它,它会按预期工作。下面是 web.xml:
java - SAML 元数据条目的签名信任建立失败
为了从远程源获取元数据,我定义了一个ExtendedMetadataDelegate
bean,如下所示:
为了保证签名信任的建立,我在 JDK keystore 和 application keystore 中都添加了相关的密钥(第二步可能还不够);尽管如此,运行 webapp 还是会发生错误。
错误通过设置消失:
...但我想检查使用过的元数据。
有没有办法解决这个错误?
更新:
我尝试ExtendedMetadata
如下设置,但错误仍然存在。
java - 将控制器添加到 spring saml 示例时收到 404 错误
我的目标是在页面上有一个链接,将用户返回到原始站点。我从 spring saml 示例http://projects.spring.io/spring-security-saml/开始,并正在添加一个新功能索引页。
我的 saml-servlet.xml 和 securityContext.xml 都有
我在 com.home.saml.sp 包中的 returnController.java
我的 index.jsp 添加
java - Spring 框架 4.0 和 Spring security 3.2.4 上的 Spring Security SAML 扩展
我想为基于 spring 的应用程序使用注释配置。SSO 还需要 SAML2.0 消化和生成。
注解配置仅受 Spring 4.0 和 Spring security 3.2.4 支持
Spring security SAML 1.0 的集成是否可行?
更新:Vladimír Schäfer 提供的示例项目确实很有帮助。
但是在sso登录之后,页面已经被重定向到服务提供商应用程序上的认证失败URL。
SAML 响应如下:
我怀疑这是由于 SP 的时区与 IDP 不同,我该如何跳过这个?
authentication - Spring-SAML 身份验证失败:HttpSession 返回了 SPRING_SECURITY_CONTEXT 的空对象
我正在使用 spring-saml2-sample 应用程序连接到 Shibboleth IDP。我终于设法使用 http post 向 IDP 发送正确的 saml 请求,但登录后我在 SP 端返回以下内容:
org.springframework.security.web.context.HttpSessionSecurityContextRepository - HttpSession 返回空对象 SPRING_SECURITY_CONTEXT
有一篇类似的帖子通过迁移到 Spring Security 版本 3.1.2 解决了问题,但这是 saml2-sample 应用程序附带的版本。我错过了什么吗?我在 saml2-sample 应用程序中没有太大变化,web.xml 是一样的,库是一样的。
任何帮助将不胜感激。