如何使用可以回退到本地文件的HTTP URL配置IdP元数据?

时间:2015-08-26 14:43:58

标签: spring-saml

Spring Security SAML文档建议您可以通过提供其元数据URL并使其回退到本地文件系统上的下载副本(如果出现网络打嗝)来配置身份提供程序的元数据。

我想使用似乎是FileBackedHTTPMetadataProviderHTTPMetadataProvider混合的FilesystemMetadataProvider,但是没有关于如何在securityContext.xml

它有两个构造函数:

  • @DEPRECATED String metadataURL,int requestTimeout,String backupFilePath
  • 计时器backgroundTaskTimer,HttpClient客户端,字符串metadataURL,字符串backupFilePath

网址,超时,文件看起来更容易构建,我没有计时器或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"/>

1 个答案:

答案 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)这样的替代方案一些贪图。 :)