|
@@ -23,6 +23,7 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
import org.apache.commons.lang.Validate;
|
|
|
import org.maxkey.authz.saml.common.TrustResolver;
|
|
|
import org.maxkey.authz.saml20.metadata.MetadataGenerator;
|
|
|
+import org.maxkey.constants.ContentType;
|
|
|
import org.maxkey.crypto.keystore.KeyStoreLoader;
|
|
|
import org.maxkey.domain.Saml20Metadata;
|
|
|
import org.maxkey.web.WebContext;
|
|
@@ -68,11 +69,14 @@ public class MetadataEndpoint {
|
|
|
private Saml20Metadata saml20Metadata;
|
|
|
|
|
|
private Credential signingCredential;
|
|
|
+
|
|
|
+ public static String IDP_METADATA_PREFIX = "Idp_Metadata_";
|
|
|
|
|
|
@RequestMapping(value = "/{appid}.xml",produces = "application/xml")
|
|
|
public ModelAndView metadata(HttpServletRequest request,
|
|
|
HttpServletResponse response, @PathVariable("appid") String appId) {
|
|
|
-
|
|
|
+ response.setContentType(ContentType.APPLICATION_XML_UTF8);
|
|
|
+ appId = appId.substring(IDP_METADATA_PREFIX.length(), appId.length());
|
|
|
if(signingCredential==null){
|
|
|
TrustResolver trustResolver = new TrustResolver();
|
|
|
CredentialResolver credentialResolver=(CredentialResolver)trustResolver.buildKeyStoreCredentialResolver(
|
|
@@ -111,7 +115,7 @@ public class MetadataEndpoint {
|
|
|
|
|
|
descriptor.getSingleLogoutServices().add(metadataGenerator.getSingleLogoutService(WebContext.getHttpContextPath()+"/logout",null));
|
|
|
|
|
|
- descriptor.getManageNameIDServices().add(metadataGenerator.getManageNameIDService(WebContext.getHttpContextPath()+"/saml/metadata/"+appId));
|
|
|
+ descriptor.getManageNameIDServices().add(metadataGenerator.getManageNameIDService(WebContext.getHttpContextPath()+"/saml/metadata/"+IDP_METADATA_PREFIX+appId+".xml"));
|
|
|
|
|
|
descriptor.getKeyDescriptors().add(metadataGenerator.generateEncryptionKeyDescriptor(signingCredential));
|
|
|
|
|
@@ -151,8 +155,8 @@ public class MetadataEndpoint {
|
|
|
|
|
|
String entityDescriptorXml=XMLHelper.prettyPrintXML(metadataGenerator.marshallerMetadata(entityDescriptor));
|
|
|
|
|
|
- logger.debug("EntityDescriptor element XML : \\n");
|
|
|
- logger.debug(entityDescriptorXml);
|
|
|
+ logger.trace("EntityDescriptor element XML : \\n");
|
|
|
+ logger.trace(entityDescriptorXml);
|
|
|
|
|
|
ModelAndView mv = new ModelAndView("trusts/saml_v20_metadata");
|
|
|
mv.addObject("metadata", entityDescriptorXml);
|