From 391bc8546bf5bc9a6396378ebec50a7e35031adc Mon Sep 17 00:00:00 2001 From: Thomas <> Date: Fri, 12 Mar 2021 10:46:26 +0100 Subject: update errorMessage generation for SAML2 authentication protocol to return external error-codes only --- .../pvp2/idp/impl/AbstractPvp2XProtocol.java | 32 +++++++++++++--------- 1 file changed, 19 insertions(+), 13 deletions(-) (limited to 'eaaf_modules') diff --git a/eaaf_modules/eaaf_module_pvp2_idp/src/main/java/at/gv/egiz/eaaf/modules/pvp2/idp/impl/AbstractPvp2XProtocol.java b/eaaf_modules/eaaf_module_pvp2_idp/src/main/java/at/gv/egiz/eaaf/modules/pvp2/idp/impl/AbstractPvp2XProtocol.java index 50fd0f44..afef878b 100644 --- a/eaaf_modules/eaaf_module_pvp2_idp/src/main/java/at/gv/egiz/eaaf/modules/pvp2/idp/impl/AbstractPvp2XProtocol.java +++ b/eaaf_modules/eaaf_module_pvp2_idp/src/main/java/at/gv/egiz/eaaf/modules/pvp2/idp/impl/AbstractPvp2XProtocol.java @@ -129,7 +129,7 @@ public abstract class AbstractPvp2XProtocol extends AbstractController implement final StatusCode statusCode = Saml2Utils.createSamlObject(StatusCode.class); final StatusMessage statusMessage = Saml2Utils.createSamlObject(StatusMessage.class); - String moaError = null; + String internalErrorCode = null; if (e instanceof NoPassivAuthenticationException) { statusCode.setValue(StatusCode.NO_PASSIVE); @@ -149,29 +149,35 @@ public abstract class AbstractPvp2XProtocol extends AbstractController implement final String statusMessageValue = ex.getStatusMessageValue(); if (statusMessageValue != null) { statusMessage.setMessage(StringEscapeUtils.escapeXml(statusMessageValue)); + } - moaError = statusMessager.mapInternalErrorToExternalError(ex.getErrorId()); + + internalErrorCode = ex.getErrorId(); } else { statusCode.setValue(StatusCode.RESPONDER); statusMessage.setMessage(StringEscapeUtils.escapeXml(e.getLocalizedMessage())); - moaError = statusMessager.getResponseErrorCode(e); + internalErrorCode = statusMessager.getResponseErrorCode(e); + } - if (StringUtils.isNotEmpty(moaError)) { - final StatusCode moaStatusCode = Saml2Utils.createSamlObject(StatusCode.class); - moaStatusCode.setValue(moaError); - statusCode.setStatusCode(moaStatusCode); + //set external sub-statusCode if one was selected + if (StringUtils.isNotEmpty(internalErrorCode)) { + final StatusCode externalStatusCode = Saml2Utils.createSamlObject(StatusCode.class); + externalStatusCode.setValue( + statusMessager.mapInternalErrorToExternalError(internalErrorCode)); + statusCode.setStatusCode(externalStatusCode); + } - status.setStatusCode(statusCode); + //set status-message if availabe if (statusMessage.getMessage() != null) { status.setStatusMessage(statusMessage); - } - samlResponse.setStatus(status); - final String remoteSessionID = Saml2Utils.getSecureIdentifier(); - samlResponse.setID(remoteSessionID); - + } + status.setStatusCode(statusCode); + + samlResponse.setStatus(status); + samlResponse.setID(Saml2Utils.getSecureIdentifier()); samlResponse.setIssueInstant(new DateTime()); final Issuer nissuer = Saml2Utils.createSamlObject(Issuer.class); nissuer.setValue(pvpBasicConfiguration.getIdpEntityId(pvpRequest.getAuthUrl())); -- cgit v1.2.3