aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java432
1 files changed, 250 insertions, 182 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java
index 94fd4f28e..9e15e04dd 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java
@@ -550,7 +550,7 @@ public class AuthenticationServer implements MOAIDAuthConstants {
// now validate the extended infoboxes
verifyInfoboxes(session, infoboxReadResponseParameters, !oaParam.getProvideStammzahl());
- return getCreateXMLSignatureRequestAuthBlockOrRedirect(session, authConf, oaParam, false);
+ return getCreateXMLSignatureRequestAuthBlockOrRedirect(session, authConf, oaParam);
}
@@ -571,7 +571,7 @@ public class AuthenticationServer implements MOAIDAuthConstants {
* the BKU including the <code>&lt;InfoboxReadResponse&gt;</code>
* @return String representation of the <code>&lt;CreateXMLSignatureRequest&gt;</code>
*/
- public String verifyMandate(String sessionID, MISMandate mandate)
+ public void verifyMandate(String sessionID, MISMandate mandate)
throws
AuthenticationException,
BuildException,
@@ -591,28 +591,25 @@ public class AuthenticationServer implements MOAIDAuthConstants {
AuthenticationSession session = getSession(sessionID);
- AuthConfigurationProvider authConf = AuthConfigurationProvider.getInstance();
-
-
OAAuthParameter oaParam =
AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(
session.getPublicOAURLPrefix());
- try {
- // set extended SAML attributes
- setExtendedSAMLAttributeForMandates(session, mandate, oaParam.getBusinessService());
- } catch (SAXException e) {
- throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}, e);
- } catch (IOException e) {
- throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}, e);
- } catch (ParserConfigurationException e) {
- throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}, e);
- } catch (TransformerException e) {
- throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}, e);
+ if (oaParam.getProvideFullMandatorData()) {
+ try {
+ // set extended SAML attributes if provideMandatorData is true
+ setExtendedSAMLAttributeForMandates(session, mandate, oaParam.getBusinessService());
+ } catch (SAXException e) {
+ throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}, e);
+ } catch (IOException e) {
+ throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}, e);
+ } catch (ParserConfigurationException e) {
+ throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}, e);
+ } catch (TransformerException e) {
+ throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID}, e);
+ }
}
-
-
- return getCreateXMLSignatureRequestAuthBlockOrRedirect(session, authConf, oaParam, true);
+
}
/**
@@ -625,7 +622,7 @@ public class AuthenticationServer implements MOAIDAuthConstants {
* @throws BuildException
* @throws ValidateException
*/
- public String getCreateXMLSignatureRequestAuthBlockOrRedirect(AuthenticationSession session, AuthConfigurationProvider authConf, OAAuthParameter oaParam, boolean fromMandate)
+ public String getCreateXMLSignatureRequestAuthBlockOrRedirect(AuthenticationSession session, AuthConfigurationProvider authConf, OAAuthParameter oaParam)
throws
ConfigurationException,
BuildException,
@@ -638,7 +635,7 @@ public class AuthenticationServer implements MOAIDAuthConstants {
if (oaParam==null) oaParam = AuthConfigurationProvider.getInstance().
getOnlineApplicationParameter(session.getPublicOAURLPrefix());
- if (!fromMandate) {
+// if (!fromMandate) {
//BZ.., calculate bPK for signing to be already present in AuthBlock
IdentityLink identityLink = session.getIdentityLink();
if (identityLink.getIdentificationType().equals(Constants.URN_PREFIX_BASEID)) {
@@ -649,11 +646,11 @@ public class AuthenticationServer implements MOAIDAuthConstants {
identityLink.setIdentificationValue(bpkBase64);
}
//..BZ
- }
+// }
// builds the AUTH-block
- String authBlock = buildAuthenticationBlock(session, fromMandate);
+ String authBlock = buildAuthenticationBlock(session);
// session.setAuthBlock(authBlock);
// builds the <CreateXMLSignatureRequest>
@@ -837,7 +834,7 @@ public class AuthenticationServer implements MOAIDAuthConstants {
* @throws BuildException If an error occurs on serializing an extended SAML attribute
* to be appended to the AUTH-Block.
*/
- private String buildAuthenticationBlock(AuthenticationSession session, boolean fromMandate) throws BuildException {
+ private String buildAuthenticationBlock(AuthenticationSession session) throws BuildException {
IdentityLink identityLink = session.getIdentityLink();
String issuer = identityLink.getName();
String gebDat = identityLink.getDateOfBirth();
@@ -862,8 +859,7 @@ public class AuthenticationServer implements MOAIDAuthConstants {
oaURL,
gebDat,
extendedSAMLAttributes,
- session,
- fromMandate);
+ session);
return authBlock;
}
@@ -949,7 +945,7 @@ public class AuthenticationServer implements MOAIDAuthConstants {
throw new ValidateException("validator.43", new Object[] {friendlyName});
}
// set compatibility mode for mandates infobox and all infoboxes (it is possible to be a parep infobox)
- session.setMandateCompatibilityMode(ParepConfiguration.isMandateCompatibilityMode(verifyInfoboxParameter.getApplicationSpecificParams()));
+ //session.setMandateCompatibilityMode(ParepConfiguration.isMandateCompatibilityMode(verifyInfoboxParameter.getApplicationSpecificParams()));
// check for party representation in mandates infobox
if (Constants.INFOBOXIDENTIFIER_MANDATES.equalsIgnoreCase(identifier) && !((infoboxTokenList == null || infoboxTokenList.size() == 0))){
//We need app specific parameters
@@ -1187,6 +1183,7 @@ public class AuthenticationServer implements MOAIDAuthConstants {
Vector extendedSamlAttributes = new Vector();
+
extendedSamlAttributes.clear();
//extendedSamlAttributes.add(new ExtendedSAMLAttributeImpl(ParepValidator.EXT_SAML_MANDATE_RAW, mandate, SZRGWConstants.MANDATE_NS, ExtendedSAMLAttribute.NOT_ADD_TO_AUTHBLOCK));
@@ -1404,72 +1401,189 @@ public class AuthenticationServer implements MOAIDAuthConstants {
}
- // Exchange person data information by a mandate if needed
- boolean mandateMode = session.getUseMandate();
+ // builds authentication data and stores it together with a SAML artifact
+ AuthenticationData authData = buildAuthenticationData(session, vsresp);
- List oaAttributes = session.getExtendedSAMLAttributesOA();
- IdentityLink replacementIdentityLink = null;
+ if (session.getUseMandate()) {
+ // mandate mode
+ return null;
+ }
+ else {
+
+ String samlAssertion =
+ new AuthenticationDataAssertionBuilder().build(
+ authData,
+ session.getAssertionPrPerson(),
+ session.getAssertionAuthBlock(),
+ session.getAssertionIlAssertion(),
+ session.getBkuURL(),
+ session.getAssertionSignerCertificateBase64(),
+ session.getAssertionBusinessService(),
+ session.getExtendedSAMLAttributesOA());
+ authData.setSamlAssertion(samlAssertion);
+
+ String assertionFile = AuthConfigurationProvider.getInstance().getGenericConfigurationParameter("AuthenticationServer.WriteAssertionToFile");
+ if (!ParepUtils.isEmpty(assertionFile))
+ try {
+ ParepUtils.saveStringToFile(samlAssertion, new File(assertionFile));
+ } catch (IOException e) {
+ throw new BuildException(
+ "builder.00",
+ new Object[] { "AuthenticationData", e.toString()},
+ e);
+ }
+
+ String samlArtifact =
+ new SAMLArtifactBuilder().build(session.getAuthURL(), session.getSessionID());
+ storeAuthenticationData(samlArtifact, authData);
+
+ // invalidates the authentication session
+ sessionStore.remove(sessionID);
+ Logger.info(
+ "Anmeldedaten zu MOASession " + sessionID + " angelegt, SAML Artifakt " + samlArtifact);
+ return samlArtifact;
+
+ }
+
+
+
+
+ }
+
+ /**
+ * Processes a <code>&lt;CreateXMLSignatureResponse&gt;</code> sent by the
+ * security layer implementation.<br>
+ * <ul>
+ * <li>Validates given <code>&lt;CreateXMLSignatureResponse&gt;</code></li>
+ * <li>Parses <code>&lt;CreateXMLSignatureResponse&gt;</code> for error codes</li>
+ * <li>Parses authentication block enclosed in
+ * <code>&lt;CreateXMLSignatureResponse&gt;</code></li>
+ * <li>Verifies authentication block by calling the MOA SP component</li>
+ * <li>Creates authentication data</li>
+ * <li>Creates a corresponding SAML artifact</li>
+ * <li>Stores authentication data in the authentication data store
+ * indexed by the SAML artifact</li>
+ * <li>Deletes authentication session</li>
+ * <li>Returns the SAML artifact, encoded BASE64</li>
+ * </ul>
+ *
+ * @param sessionID session ID of the running authentication session
+ * @param xmlCreateXMLSignatureReadResponse String representation of the
+ * <code>&lt;CreateXMLSignatureResponse&gt;</code>
+ * @return SAML artifact needed for retrieving authentication data, encoded BASE64
+ */
+ public String verifyAuthenticationBlockMandate(
+ String sessionID,
+ Element mandate)
+ throws
+ AuthenticationException,
+ BuildException,
+ ParseException,
+ ConfigurationException,
+ ServiceException,
+ ValidateException {
+
+ if (isEmpty(sessionID))
+ throw new AuthenticationException("auth.10", new Object[] { REQ_VERIFY_AUTH_BLOCK, PARAM_SESSIONID});
+ AuthenticationSession session = getSession(sessionID);
+ //AuthConfigurationProvider authConf = AuthConfigurationProvider.getInstance();
-// if (mandateMode) {
-// Iterator it = oaAttributes.iterator();
-// //ExtendedSAMLAttribute samlAttribute = (ExtendedSAMLAttribute)it.next();
-// Element mandate = session.getMandateElem();
-// replacementIdentityLink = new IdentityLink();
-// Element mandator = ParepUtils.extractMandator(mandate);
-// String dateOfBirth = "";
-// Element prPerson = null;
-// String familyName = "";
-// String givenName = "";
-// String identificationType = "";
-// String identificationValue = "";
-// if (mandator != null) {
-// boolean physical = ParepUtils.isPhysicalPerson(mandator);
-// if (physical) {
-// familyName = ParepUtils.extractText(mandator, "descendant-or-self::pr:Name/pr:FamilyName/text()");
-// givenName = ParepUtils.extractText(mandator, "descendant-or-self::pr:Name/pr:GivenName/text()");
-// dateOfBirth = ParepUtils.extractMandatorDateOfBirth(mandator);
-// } else {
-// familyName = ParepUtils.extractMandatorFullName(mandator);
-// }
-// identificationType = ParepUtils.getIdentification(mandator, "Type");
-// identificationValue = ParepUtils.extractMandatorWbpk(mandator);
-// prPerson = ParepUtils.extractPrPersonOfMandate(mandate);
-// if (physical && session.getBusinessService() && identificationType!=null && Constants.URN_PREFIX_BASEID.equals(identificationType)) {
-// // now we calculate the wbPK and do so if we got it from the BKU
-// identificationType = Constants.URN_PREFIX_WBPK + "+" + session.getDomainIdentifier();
-// identificationValue = new BPKBuilder().buildWBPK(identificationValue, session.getDomainIdentifier());
-// ParepUtils.HideStammZahlen(prPerson, true, null, null, true);
-// }
-//
-//
-// replacementIdentityLink.setDateOfBirth(dateOfBirth);
-// replacementIdentityLink.setFamilyName(familyName);
-// replacementIdentityLink.setGivenName(givenName);
-// replacementIdentityLink.setIdentificationType(identificationType);
-// replacementIdentityLink.setIdentificationValue(identificationValue);
-// replacementIdentityLink.setPrPerson(prPerson);
-// try {
-// replacementIdentityLink.setSamlAssertion(session.getIdentityLink().getSamlAssertion());
-// } catch (Exception e) {
-// throw new ValidateException("validator.64", null);
-// }
-//
-// }
-//
-// }
+
+ IdentityLink tempIdentityLink = null;
+
+ if (session.getUseMandate()) {
+ tempIdentityLink = new IdentityLink();
+ Element mandator = ParepUtils.extractMandator(mandate);
+ String dateOfBirth = "";
+ Element prPerson = null;
+ String familyName = "";
+ String givenName = "";
+ String identificationType = "";
+ String identificationValue = "";
+ if (mandator != null) {
+ boolean physical = ParepUtils.isPhysicalPerson(mandator);
+ if (physical) {
+ familyName = ParepUtils.extractText(mandator, "descendant-or-self::pr:Name/pr:FamilyName/text()");
+ givenName = ParepUtils.extractText(mandator, "descendant-or-self::pr:Name/pr:GivenName/text()");
+ dateOfBirth = ParepUtils.extractMandatorDateOfBirth(mandator);
+ } else {
+ familyName = ParepUtils.extractMandatorFullName(mandator);
+ }
+ identificationType = ParepUtils.getIdentification(mandator, "Type");
+ identificationValue = ParepUtils.extractMandatorWbpk(mandator);
+ prPerson = ParepUtils.extractPrPersonOfMandate(mandate);
+ if (physical && session.getBusinessService() && identificationType!=null && Constants.URN_PREFIX_BASEID.equals(identificationType)) {
+ // now we calculate the wbPK and do so if we got it from the BKU
+ identificationType = Constants.URN_PREFIX_WBPK + "+" + session.getDomainIdentifier();
+ identificationValue = new BPKBuilder().buildWBPK(identificationValue, session.getDomainIdentifier());
+ ParepUtils.HideStammZahlen(prPerson, true, null, null, true);
+ }
+
+
+ tempIdentityLink.setDateOfBirth(dateOfBirth);
+ tempIdentityLink.setFamilyName(familyName);
+ tempIdentityLink.setGivenName(givenName);
+ tempIdentityLink.setIdentificationType(identificationType);
+ tempIdentityLink.setIdentificationValue(identificationValue);
+ tempIdentityLink.setPrPerson(prPerson);
+ try {
+ tempIdentityLink.setSamlAssertion(session.getIdentityLink().getSamlAssertion());
+ } catch (Exception e) {
+ throw new ValidateException("validator.64", null);
+ }
+
+ }
+
+ }
// builds authentication data and stores it together with a SAML artifact
- AuthenticationData authData = buildAuthenticationData(session, vsresp, replacementIdentityLink);
- String samlArtifact =
- new SAMLArtifactBuilder().build(session.getAuthURL(), session.getSessionID());
- storeAuthenticationData(samlArtifact, authData);
+ AuthenticationData authData = session.getAssertionAuthData(); //buildAuthenticationData(session, vsresp, replacementIdentityLink);
- // invalidates the authentication session
- sessionStore.remove(sessionID);
- Logger.info(
- "Anmeldedaten zu MOASession " + sessionID + " angelegt, SAML Artifakt " + samlArtifact);
- return samlArtifact;
+ Element mandatePerson = tempIdentityLink.getPrPerson();
+ String mandateData = null;
+ try {
+ mandateData = DOMUtils.serializeNode(mandatePerson);
+ } catch (TransformerException e1) {
+ throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID});
+ } catch (IOException e1) {
+ throw new AuthenticationException("auth.16", new Object[] { GET_MIS_SESSIONID});
+ }
+
+ String samlAssertion =
+ new AuthenticationDataAssertionBuilder().buildMandate(
+ authData,
+ session.getAssertionPrPerson(),
+ mandateData,
+ session.getAssertionAuthBlock(),
+ session.getAssertionIlAssertion(),
+ session.getBkuURL(),
+ session.getAssertionSignerCertificateBase64(),
+ session.getAssertionBusinessService(),
+ session.getExtendedSAMLAttributesOA());
+ authData.setSamlAssertion(samlAssertion);
+
+ String assertionFile = AuthConfigurationProvider.getInstance().getGenericConfigurationParameter("AuthenticationServer.WriteAssertionToFile");
+ if (!ParepUtils.isEmpty(assertionFile))
+ try {
+ ParepUtils.saveStringToFile(samlAssertion, new File(assertionFile));
+ } catch (IOException e) {
+ throw new BuildException(
+ "builder.00",
+ new Object[] { "AuthenticationData", e.toString()},
+ e);
+ }
+
+ String samlArtifact =
+ new SAMLArtifactBuilder().build(session.getAuthURL(), session.getSessionID());
+ storeAuthenticationData(samlArtifact, authData);
+
+ // invalidates the authentication session
+ sessionStore.remove(sessionID);
+ Logger.info(
+ "Anmeldedaten zu MOASession " + sessionID + " angelegt, SAML Artifakt " + samlArtifact);
+ return samlArtifact;
+
}
/**
@@ -1540,79 +1654,45 @@ public class AuthenticationServer implements MOAIDAuthConstants {
}
}
- // Exchange person data information by a mandate if needed
- List oaAttributes = session.getExtendedSAMLAttributesOA();
- IdentityLink replacementIdentityLink = null;
- if (session.isMandateCompatibilityMode() && oaAttributes != null && oaAttributes.size()>0) {
- // look if we have a mandate
- boolean foundMandate = false;
- Iterator it = oaAttributes.iterator();
- while (!foundMandate && it.hasNext()) {
- ExtendedSAMLAttribute samlAttribute = (ExtendedSAMLAttribute)it.next();
- if (ParepValidator.EXT_SAML_MANDATE_RAW.equals(samlAttribute.getName())) {
- Object value = samlAttribute.getValue();
- if (value instanceof Element) {
- Element mandate = (Element) value;
- replacementIdentityLink = new IdentityLink();
- Element mandator = ParepUtils.extractMandator(mandate);
- String dateOfBirth = "";
- Element prPerson = null;
- String familyName = "";
- String givenName = "";
- String identificationType = "";
- String identificationValue = "";
- if (mandator != null) {
- boolean physical = ParepUtils.isPhysicalPerson(mandator);
- if (physical) {
- familyName = ParepUtils.extractText(mandator, "descendant-or-self::pr:Name/pr:FamilyName/text()");
- givenName = ParepUtils.extractText(mandator, "descendant-or-self::pr:Name/pr:GivenName/text()");
- dateOfBirth = ParepUtils.extractMandatorDateOfBirth(mandator);
- } else {
- familyName = ParepUtils.extractMandatorFullName(mandator);
- }
- identificationType = ParepUtils.getIdentification(mandator, "Type");
- identificationValue = ParepUtils.extractMandatorWbpk(mandator);
- prPerson = ParepUtils.extractPrPersonOfMandate(mandate);
- if (physical && session.getBusinessService() && identificationType!=null && Constants.URN_PREFIX_BASEID.equals(identificationType)) {
- // now we calculate the wbPK and do so if we got it from the BKU
- identificationType = Constants.URN_PREFIX_WBPK + "+" + session.getDomainIdentifier();
- identificationValue = new BPKBuilder().buildWBPK(identificationValue, session.getDomainIdentifier());
- ParepUtils.HideStammZahlen(prPerson, true, null, null, true);
- }
-
- }
- replacementIdentityLink.setDateOfBirth(dateOfBirth);
- replacementIdentityLink.setFamilyName(familyName);
- replacementIdentityLink.setGivenName(givenName);
- replacementIdentityLink.setIdentificationType(identificationType);
- replacementIdentityLink.setIdentificationValue(identificationValue);
- replacementIdentityLink.setPrPerson(prPerson);
- try {
- replacementIdentityLink.setSamlAssertion(session.getIdentityLink().getSamlAssertion());
- } catch (Exception e) {
- throw new ValidateException("validator.64", null);
- }
- } else {
- Logger.info("The type of Mandate SAML-Attribute is not \"org.w3c.dom.Element\"");
- throw new ValidateException("validator.64", null);
- }
- }
- }
- }
-
VerifyXMLSignatureResponse vsresp = new VerifyXMLSignatureResponse();
X509Certificate cert = session.getForeignSignerCertificate();
vsresp.setX509certificate(cert);
- AuthenticationData authData = buildAuthenticationData(session, vsresp, replacementIdentityLink);
- String samlArtifact =
- new SAMLArtifactBuilder().build(session.getAuthURL(), session.getSessionID());
- storeAuthenticationData(samlArtifact, authData);
-
- // invalidates the authentication session
- sessionStore.remove(sessionID);
- Logger.info(
- "Anmeldedaten zu MOASession " + sessionID + " angelegt, SAML Artifakt " + samlArtifact);
- return samlArtifact;
+ AuthenticationData authData = buildAuthenticationData(session, vsresp);
+
+
+ String samlAssertion =
+ new AuthenticationDataAssertionBuilder().build(
+ authData,
+ session.getAssertionPrPerson(),
+ session.getAssertionAuthBlock(),
+ session.getAssertionIlAssertion(),
+ session.getBkuURL(),
+ session.getAssertionSignerCertificateBase64(),
+ session.getAssertionBusinessService(),
+ session.getExtendedSAMLAttributesOA());
+ authData.setSamlAssertion(samlAssertion);
+
+ String assertionFile = AuthConfigurationProvider.getInstance().getGenericConfigurationParameter("AuthenticationServer.WriteAssertionToFile");
+ if (!ParepUtils.isEmpty(assertionFile))
+ try {
+ ParepUtils.saveStringToFile(samlAssertion, new File(assertionFile));
+ } catch (IOException e) {
+ throw new BuildException(
+ "builder.00",
+ new Object[] { "AuthenticationData", e.toString()},
+ e);
+ }
+
+ String samlArtifact =
+ new SAMLArtifactBuilder().build(session.getAuthURL(), session.getSessionID());
+ storeAuthenticationData(samlArtifact, authData);
+
+ // invalidates the authentication session
+ sessionStore.remove(sessionID);
+ Logger.info(
+ "Anmeldedaten zu MOASession " + sessionID + " angelegt, SAML Artifakt " + samlArtifact);
+
+ return samlArtifact;
}
/**
@@ -1626,18 +1706,10 @@ public class AuthenticationServer implements MOAIDAuthConstants {
*/
private AuthenticationData buildAuthenticationData(
AuthenticationSession session,
- VerifyXMLSignatureResponse verifyXMLSigResp,
- IdentityLink replacementIdentityLink)
+ VerifyXMLSignatureResponse verifyXMLSigResp)
throws ConfigurationException, BuildException {
- IdentityLink identityLink;
- if (replacementIdentityLink == null) {
- identityLink = session.getIdentityLink();
- } else {
- // We have got data form a mandate we need now to use to stay compatible with applications
- identityLink = replacementIdentityLink;
- }
-
+ IdentityLink identityLink = session.getIdentityLink();
AuthenticationData authData = new AuthenticationData();
OAAuthParameter oaParam =
AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(
@@ -1661,6 +1733,7 @@ public class AuthenticationServer implements MOAIDAuthConstants {
authData.setIdentificationValue(identityLink.getIdentificationValue());
}
String prPerson = new PersonDataBuilder().build(identityLink, provideStammzahl);
+
try {
String signerCertificateBase64 = "";
if (oaParam.getProvideCertifcate()) {
@@ -1696,22 +1769,17 @@ public class AuthenticationServer implements MOAIDAuthConstants {
ilAssertion = StringUtils.replaceAll(ilAssertion, identityLink.getIdentificationValue(), "");
}
String authBlock = oaParam.getProvideAuthBlock() ? session.getAuthBlock() : "";
- String samlAssertion =
- new AuthenticationDataAssertionBuilder().build(
- authData,
- prPerson,
- authBlock,
- ilAssertion,
- session.getBkuURL(),
- signerCertificateBase64,
- businessService,
- session.getExtendedSAMLAttributesOA());
- authData.setSamlAssertion(samlAssertion);
- String assertionFile = AuthConfigurationProvider.getInstance().getGenericConfigurationParameter("AuthenticationServer.WriteAssertionToFile");
- if (!ParepUtils.isEmpty(assertionFile)) ParepUtils.saveStringToFile(samlAssertion, new File(assertionFile)); //Ex: "c:/saml_assertion.xml"
-
+ session.setAssertionAuthBlock(authBlock);
+ session.setAssertionAuthData(authData);
+ session.setAssertionBusinessService(businessService);
+ session.setAssertionIlAssertion(ilAssertion);
+ session.setAssertionPrPerson(prPerson);
+ session.setAssertionSignerCertificateBase64(signerCertificateBase64);
+
return authData;
+
+
} catch (Throwable ex) {
throw new BuildException(
"builder.00",
@@ -1735,7 +1803,7 @@ public class AuthenticationServer implements MOAIDAuthConstants {
}
AuthenticationData authData = null;
synchronized (authenticationDataStore) {
- System.out.println("assertionHandle: " + assertionHandle);
+ //System.out.println("assertionHandle: " + assertionHandle);
authData = (AuthenticationData) authenticationDataStore.get(assertionHandle);
if (authData == null) {
Logger.error("Assertion not found for SAML Artifact: " + samlArtifact);