我需要使用Spring SAML Extension配置SP,这次使用新的idp admin请求。 他让我向他发送带有这样的mdui值的元数据:
<md:SPSSODescriptor> <Extensions> <mdui:UIInfo>
<mdui:DisplayName xml:lang="it">desc</mdui:DisplayName>
<mdui:InformationURL xml:lang="it">http://xxxx</mdui:InformationURL>
</Extensions>
....
</SPSSODescriptor>
我认为我可以使用手动添加值的非签名元数据执行此操作。 这是唯一的方法,还是可以通过配置选项获得相同的结果? 提前谢谢。
的Alessandro
答案 0 :(得分:0)
签出spring-security-saml的MetadataGenerator类。它有一个buildExtensions方法,如果已配置,则使用DiscoveryResponse扩展名填充OpenSAML的Extensions对象。您可以扩展MetadataGenerator并挂钩您的配置。
这是buildExtensions方法的摘录:
protected Extensions buildExtensions(String entityBaseURL, String entityAlias) {
boolean include = false;
Extensions extensions = new ExtensionsBuilder().buildObject();
// Add discovery
if (isIncludeDiscoveryExtension()) {
DiscoveryResponse discoveryService = getDiscoveryService(entityBaseURL, entityAlias);
extensions.getUnknownXMLObjects().add(discoveryService);
include = true;
}
if (include) {
return extensions;
} else {
return null;
}
}
如果您正在使用Spring Boot,则可以使用此库配置SAML并提供自定义MetadataGenerator:spring-boot-security-saml
配置看起来像:
@Configuration
public static class MyServiceProviderConfig extends ServiceProviderConfigurerAdapter {
@Override
public void configure(ServiceProviderSecurityBuilder serviceProvider) throws Exception {
serviceProvider
.metadataGenerator(customGenerator);
}
}