我需要使用Spring SAML扩展配置一个SP,这一次需要一个新的idp管理请求。他要求我向他发送带有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
发布于 2016-07-27 15:20:57
查看spring- MetadataGenerator -saml的安全性类。它有一个用DiscoveryResponse扩展名填充OpenSAML对象的buildExtensions方法。您可以在您的配置中扩展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);
}
}https://stackoverflow.com/questions/38505046
复制相似问题