diff options
author | Thomas <> | 2025-01-27 09:23:27 +0100 |
---|---|---|
committer | Thomas <> | 2025-01-27 09:23:27 +0100 |
commit | 1b8c8110906e24ec01f4d0b56e6dc2e5b871c851 (patch) | |
tree | 49431eab1d29baee64e616f0d9c0da89ac21ac68 /eaaf_modules/eaaf_module_auth_sl20/src | |
parent | 68141bf75cf79da0617419d7115aca9a5283d9c9 (diff) | |
download | EAAF-Components-1b8c8110906e24ec01f4d0b56e6dc2e5b871c851.tar.gz EAAF-Components-1b8c8110906e24ec01f4d0b56e6dc2e5b871c851.tar.bz2 EAAF-Components-1b8c8110906e24ec01f4d0b56e6dc2e5b871c851.zip |
fix(sl20): wrong HTTP status-codes in case of a generic SL20 error-response
Diffstat (limited to 'eaaf_modules/eaaf_module_auth_sl20/src')
2 files changed, 21 insertions, 3 deletions
diff --git a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/tasks/AbstractReceiveQualEidTask.java b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/tasks/AbstractReceiveQualEidTask.java index b201241b..7af20a97 100644 --- a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/tasks/AbstractReceiveQualEidTask.java +++ b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/tasks/AbstractReceiveQualEidTask.java @@ -140,7 +140,8 @@ public abstract class AbstractReceiveQualEidTask extends AbstractAuthServletTask } else { log.warn("Return with SL20-General-transport-Binding-error, because no request object was found"); - SL20ResponseUtils.buildErrorResponse(response, "2000", "General transport Binding error"); + SL20ResponseUtils.buildErrorResponse(response, "2000", "General transport Binding error", + HttpServletResponse.SC_BAD_REQUEST); } } diff --git a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20ResponseUtils.java b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20ResponseUtils.java index af292964..8f3e9954 100644 --- a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20ResponseUtils.java +++ b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20ResponseUtils.java @@ -38,18 +38,35 @@ public class SL20ResponseUtils { public static void buildErrorResponse(final HttpServletResponse response, final String errorCode, final String errorMsg) throws Exception { + buildErrorResponse(response, errorCode, errorMsg, HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + + } + + /** + * Build a generic SL2.x error-response without redirect to AuthHandler. + * + * @param response http response object + * @param errorCode ErrorCode + * @param errorMsg Error message + * @param httpStatusCode HTTP response status-code + * @throws Exception In case of a message generation error + */ + public static void buildErrorResponse(final HttpServletResponse response, + final String errorCode, final String errorMsg, int httpStatusCode) + throws Exception { final ObjectNode error = SL20JsonBuilderUtils.createErrorCommandResult(errorCode, errorMsg); final ObjectNode errorCommand = SL20JsonBuilderUtils .createCommandResponse(SL20Constants.SL20_COMMAND_IDENTIFIER_ERROR, error, null); - final ObjectNode respContainer = SL20JsonBuilderUtils.createGenericResponse(UUID.randomUUID().toString(), null, + final ObjectNode respContainer = SL20JsonBuilderUtils.createGenericResponse(UUID.randomUUID().toString(), + null, null, errorCommand, null); log.trace("SL20 response to VDA: " + respContainer); final StringWriter writer = new StringWriter(); writer.write(respContainer.toString()); final byte[] content = writer.toString().getBytes("UTF-8"); - response.setStatus(HttpServletResponse.SC_OK); + response.setStatus(httpStatusCode); response.setContentLength(content.length); response.setContentType(ContentType.APPLICATION_JSON.toString()); response.getOutputStream().write(content); |