微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

spring saml security中使用的静态SP元数据文件未下载

如何解决spring saml security中使用的静态SP元数据文件未下载

我正在使用 Spring Saml Security 并使用注释来提供 SP 元数据文件。我能够执行 SSO,当我尝试使用 http://localhost//saml/Metadata 下载 SP 元数据文件时,将下载认 SP 元数据文件而不是本地文件我没有使用任何 MetadataGeneratorFilter 来提供 SP 元数据 XML

@Bean
@DependsOn("parserPool")
public ExtendedMetadataDelegate spMetadataDelegate() throws MetadataProviderException,ResourceException {

    Timer backgroundTasktimer = new Timer(true);

    ResourceBackedMetadataProvider resourceBackedMetadataProvider = new ResourceBackedMetadataProvider(backgroundTasktimer,new FileSystemResource("<path-to-local-sp.xml>"));

    resourceBackedMetadataProvider.setParserPool(parserPool());
    resourceBackedMetadataProvider.initialize();
    ExtendedMetadataDelegate extendedMetadataDelegate = new ExtendedMetadataDelegate(resourceBackedMetadataProvider,spExtendedMetadata());
    return extendedMetadataDelegate;
}
    
@Bean
public ExtendedMetadata spExtendedMetadata()
{
    ExtendedMetadata extendedMetadata = new ExtendedMetadata();           
    extendedMetadata.setLocal(true);
    extendedMetadata.setAlias("MetadataAlias");
    return extendedMetadata;
}

@Bean
public ExtendedMetadataDelegate spExtendedMetadataProvider() throws MetadataProviderException 
{
    File Metadata = null;
    try 
    {
        Metadata = new File(spMetadataFile);
    }
    catch (Exception e) 
    {
        Debug.println(Debug.INFO,"unable to read sp Metadata file from "+ spMetadataFile);
    }
    FilesystemMetadataProvider provider = new FilesystemMetadataProvider(Metadata);
    provider.setParserPool(parserPool());
    return new ExtendedMetadataDelegate(provider,spExtendedMetadata());
}

@Bean
@Qualifier("Metadata")
public CachingMetadataManager Metadata() throws MetadataProviderException,ResourceException 
{
    List<MetadataProvider> providers = new ArrayList<>();
    providers.add(spExtendedMetadataProvider());
    
    CachingMetadataManager MetadataManager = new CachingMetadataManager(providers);
    MetadataManager.setDefaultIDP(defaultIdp);
    return MetadataManager;
}

也可以使用我们自己的登录、元数据和注销 URL 而不是认 URL。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。