Spring Security SAML 请求在证书中包含 ^M 个字符
Posted
技术标签:
【中文标题】Spring Security SAML 请求在证书中包含 ^M 个字符【英文标题】:Spring Security SAML request is including ^M characters in certificate 【发布时间】:2014-08-09 08:44:30 【问题描述】:我在用于 SP 的 Windows 平台上的 Tomcat 7 上使用 Spring Security SAML 2.0。我针对在 Unix 上运行的 IDP 进行身份验证。
向 IDP 的 SAML 请求的证书部分是在每行末尾添加 ^M 个字符。 我们的 windows 文件中的回车在 Unix 上显示为“^M”。我删除了 SP 元数据 xml 中的回车符,但在 Unix 中我们仍然得到 ^M。
谢谢
【问题讨论】:
我正在查看 spring-security-saml-core 包中的代码,但我不知道如何摆脱回车符。当 JKSKeyManager 从密钥库获取证书时,我可以看到字符不存在。 【参考方案1】:使用 dos2unix 命令清除它们。
例如
dos2unix file_with_control_m_chars > file_without_control_m_chars
您没有说明您使用的是什么 Unix,但在 Solaris 上的 /usr/bin 下可以找到 dos2unix,不确定其他 Unix。如果您使用的是 Solaris 并且没有 dos2unix,则需要安装 SUNWesu 软件包 - Extended System Utilities,它还提供了 awk、bc、uniq 等实用程序。
【讨论】:
我的问题是没有摆脱字符。字符不在 SP 元数据 xml 文件中。我什至运行了 dos2unix 命令。 SAML 创建并发送给 IDP 的消息包括 X509Certificate 内的回车。以上是关于Spring Security SAML 请求在证书中包含 ^M 个字符的主要内容,如果未能解决你的问题,请参考以下文章
配置 ADFS / Spring Security 以接受未签名的 SAML AuthnRequest
使用 Spring Security saml 的 IDP 会话超时
未抛出 Spring Security SAML DisabledException