summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas <>2025-01-27 09:23:27 +0100
committerThomas <>2025-01-27 09:23:27 +0100
commit1b8c8110906e24ec01f4d0b56e6dc2e5b871c851 (patch)
tree49431eab1d29baee64e616f0d9c0da89ac21ac68
parent68141bf75cf79da0617419d7115aca9a5283d9c9 (diff)
downloadEAAF-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
-rw-r--r--eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/tasks/AbstractReceiveQualEidTask.java3
-rw-r--r--eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20ResponseUtils.java21
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);