Spring Security SAML文档建议您可以通过提供其元数据URL并使其回退到本地文件系统上的下载副本(如果出现网络打嗝)来配置身份提供程序的元数据。
我想使用似乎是FileBackedHTTPMetadataProvider
和HTTPMetadataProvider
混合的FilesystemMetadataProvider
,但是没有关于如何在securityContext.xml
它有两个构造函数:
网址,超时,文件看起来更容易构建,我没有计时器或httpclient ......
以下是我想要如何做到这一点的想法,但我不知道如何从类路径中获取我的元数据文件......也许这是一个不同的问题。
<bean class="org.opensaml.saml2.metadata.provider.FileBackedHTTPMetadataProvider">
<constructor-arg value="https://adfs.example.com/FederationMetadata/2007-06/FederationMetadata.xml"/>
<constructor-arg><value type="int">15000</value></constructor-arg>
<constructor-arg>
<bean class="org.opensaml.util.resource.ClasspathResource">
<constructor-arg value="/metadata/Federation_idp.xml"/>
</bean>
</constructor-arg>
</bean>
ClasspathResource位不编译/运行。它想要一个字符串。
<contructor-arg value="/home/user/adfsmetadata/Federation_idp.xml"/>
答案 0 :(得分:0)
由于构造函数只需要一个String,你只需要使用正确类型的arg即可。像这样:
<constructor-arg>
<value type="java.lang.String">/dir/dir/metadata/Federation_idp.xml</value>
</constructor-arg>
如果服务器没有爆炸,但它没有拿起你的文件,你可以看看Java是否真的抓住你认为尝试FileMon(windows)的路径或者像fs_usage(OS X)这样的替代方案一些贪图。 :)