I am trying to configure SAML authentication using Spring's SAML extension
. While trying it in the annotation way using Java Configuration
. I have a requirement of getting the IDP metadata file
and the SP metadata file
to create the metadataManager
bean.
Here is the relevant configuration:
@Bean(name="idpMetadata")
public ExtendedMetadataDelegate idpMetaData(){
FilesystemMetadataProvider metadataProvider = null;
try {
metadataProvider = new FilesystemMetadataProvider(idpMetadataFile);
metadataProvider.setParserPool(parserPool());
}
catch (MetadataProviderException e) {
e.printStackTrace();
}
ExtendedMetadataDelegate metaDataDelegate =
new ExtendedMetadataDelegate(metadataProvider, new ExtendedMetadata());
return metaDataDelegate;
}
@Bean(name="spMetadata")
public ExtendedMetadataDelegate spMetaData(){
FilesystemMetadataProvider metadataProvider = null;
try {
metadataProvider = new FilesystemMetadataProvider(spMetadataFile);
metadataProvider.setParserPool(parserPool());
}
catch (MetadataProviderException e) {
e.printStackTrace();
}
ExtendedMetadata extendedMetadata = new ExtendedMetadata();
extendedMetadata.setLocal(true);
extendedMetadata.setAlias("defaultAlias");
extendedMetadata.setSecurityProfile("metaiop");
extendedMetadata.setSslSecurityProfile("pkix");
extendedMetadata.setRequireArtifactResolveSigned(true);
extendedMetadata.setRequireLogoutRequestSigned(true);
extendedMetadata.setRequireLogoutResponseSigned(false);
extendedMetadata.setIdpDiscoveryEnabled(false);
ExtendedMetadataDelegate metaDataDelegate =
new ExtendedMetadataDelegate(metadataProvider, extendedMetadata);
return metaDataDelegate;
}
My problem is I am not able to get the file content here. The spMetadataFile
and the idpMetadataFile
are null. I am not sure how can I inject or get old of these files if stored in the classpath of the project.
Please help.