public java.lang.String generateSamlResponse(axiom.soap.AxiomSamlRequest axiomSamlRequest) throws java.rmi.RemoteException {
logger.debug("entering SOAP-based generateSamlResponse implementation");
IdpConfiguration idpConfig = new IdpConfiguration();
logger.debug("Getting servlet context");
HttpServlet servlet = (HttpServlet) MessageContext.getCurrentContext().getProperty(HTTPConstants.MC_HTTP_SERVLET);
ServletConfig servletConfig = servlet.getServletConfig();
ServletContext servletContext = servletConfig.getServletContext();
logger.debug("configuring keystore");
idpConfig.setKeystoreFile(this.getClass().getResource(servletContext.getInitParameter("keystoreFile")));
idpConfig.setKeystoreAlias(servletContext.getInitParameter("keystoreAlias"));
idpConfig.setKeystorePassword(servletContext.getInitParameter("keystorePassword").toCharArray());
idpConfig.setKeystoreAliasPassword(servletContext.getInitParameter("keystoreAliasPassword").toCharArray());
logger.debug("configuring idp with request from SOAP API");
idpConfig.setSamlVersion(axiom.saml.idp.SamlVersion.valueOf(axiomSamlRequest.getSamlVersion().getValue()));
idpConfig.setIssuer(axiomSamlRequest.getIssuer());
idpConfig.setRecipient(axiomSamlRequest.getRecipient());
idpConfig.setUserId(axiomSamlRequest.getUserId());
idpConfig.setSamlUserIdLocation(axiom.saml.idp.SamlUserIdLocation.valueOf(axiomSamlRequest.getSamlUserIdLocation().getValue()));
idpConfig.setAttributeName(axiomSamlRequest.getAttributeName());
idpConfig.setAttributeUri(axiomSamlRequest.getAttributeUri());
logger.debug("Calling IdP to create SAML response");
String rawSamlResponse = null;
try {