【发布时间】:2015-01-24 02:23:59
【问题描述】:
我终于让 SAML SSO 在我的应用程序上运行,该应用程序用作 SP。它正在使用生成的元数据,但我想为生产添加预定义的元数据。
我正在尝试配置我的 ExtendedMetadataDelegate bean 以查看包含我的 SP 元数据的 xml 文件,但我不知道将文件放在哪里以便 spring 能够看到它。
spring 文档说:“将元数据文件存储为项目类路径的一部分,例如在 WEB-INF/classes/metadata/localhost_sp.xml 中。”我试着把它放在那个确切的位置,它找不到它。我尝试将它放在与我的密钥库相同的位置,它位于 WEB-INF 下。它似乎能够很好地找到密钥库,但也找不到那里的元数据。
有趣的是,当我使用如下配置的 FilesystemMetadataProvider 时,我的 windows 系统可以找到该文件,但我的 unix 服务器和 mac 上的同事不能。当应用程序在基于 unix 的系统上启动时,这是错误消息:org.opensaml.saml2.metadata.provider.MetadataProviderException: Metadata file '/WEB-INF/blah/filename.xml' 不存在 但应用程序继续运行良好,SSO 甚至可以正常工作。
/WEB-INF/blah/filename.xml
当我使用如下配置的 ResourceBackedMetadataProvider 时,我的系统甚至无法编译,因为它找不到文件。错误是:嵌套异常是 org.opensaml.util.resource.ResourceException:Classpath 资源不存在:filename.xml
我假设我需要更改类路径上的某些内容,但我不知道是更改构建类路径还是运行类路径。我尝试将 WEB-INF 添加到运行类路径中,但这似乎没有帮助。
在此先感谢您提供任何帮助。
【问题讨论】:
-
您的配置示例没有成功,您可以将它们添加到您的问题中吗?
标签: spring spring-security saml