summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ErrorTicketService.java7
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ProtocolAuthenticationService.java17
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/ProtocolFinalizationController.java2
3 files changed, 16 insertions, 10 deletions
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ErrorTicketService.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ErrorTicketService.java
index c5bac225..3471aebe 100644
--- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ErrorTicketService.java
+++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ErrorTicketService.java
@@ -92,7 +92,7 @@ public class ErrorTicketService {
}
}
- public HandleData createHandleData(Throwable throwable, HttpServletRequest req) {
+ public HandleData createHandleData(Throwable throwable, HttpServletRequest req) throws EaafException {
HandleData data = new HandleData(throwable, req);
extractErrorCode(data);
setUpErrorData(data);
@@ -120,7 +120,7 @@ public class ErrorTicketService {
}
}
- private void setUpErrorData(HandleData data) {
+ private void setUpErrorData(HandleData data) throws EaafException {
if (propertyMap.containsKey(data.errorCode)) {
String action = propertyMap.get(data.errorCode);
@@ -145,7 +145,8 @@ public class ErrorTicketService {
} else {
data.generateSupportTicket();
- // TODO log with ticket gernal internal error
+ throw new EaafException("internal.configuration.00", new Object[] {data.errorCode + "in on_error_action" +
+ ".properties"});
}
}
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ProtocolAuthenticationService.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ProtocolAuthenticationService.java
index 8300c31f..bb6f45d0 100644
--- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ProtocolAuthenticationService.java
+++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ProtocolAuthenticationService.java
@@ -77,6 +77,8 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashSet;
+import static at.gv.egiz.eaaf.core.api.IStatusMessenger.CODES_INTERNAL_ERROR_GENERIC;
+
@Service
public class ProtocolAuthenticationService implements IProtocolAuthenticationService {
private static final Logger log = LoggerFactory.getLogger(ProtocolAuthenticationService.class);
@@ -260,11 +262,10 @@ public class ProtocolAuthenticationService implements IProtocolAuthenticationSer
}
- } catch (final Throwable e) {
+ } catch (final Throwable e) { //
handleErrorNoRedirect(throwable, req, resp, true);
}
-
}
@Override
@@ -281,8 +282,14 @@ public class ProtocolAuthenticationService implements IProtocolAuthenticationSer
// write errror to console
logExceptionToTechnicalLog(errorData);
- // return error to Web browser
- displayException(req, resp, errorData);
+ if (errorData.getActionType().equals(ErrorTicketService.ActionType.NOTICKET_NOREDIRECT) ||
+ errorData.getActionType().equals(ErrorTicketService.ActionType.TICKET_NOREDIRECT)) {
+ // return error to Web browser
+ displayException(req, resp, errorData);
+ } else {
+ throw new EaafException(IStatusMessenger.CODES_INTERNAL_ERROR_GENERIC, null,
+ new Exception("On Erroraction mapping mismatch", throwable));
+ }
}
@Override
@@ -516,7 +523,7 @@ public class ProtocolAuthenticationService implements IProtocolAuthenticationSer
} else {
// write generic message for general exceptions
- final String msg = statusMessager.getMessage(IStatusMessenger.CODES_INTERNAL_ERROR_GENERIC, null);
+ final String msg = statusMessager.getMessage(CODES_INTERNAL_ERROR_GENERIC, null);
writeHtmlErrorResponse(req, resp, msg, internalErrorCode, null,
statusMessager.mapInternalErrorToExternalError(internalErrorCode), errorData.getRedirectUrl(),
errorData.getSupportTicket());
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/ProtocolFinalizationController.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/ProtocolFinalizationController.java
index 37aab8df..26feb3db 100644
--- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/ProtocolFinalizationController.java
+++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/ProtocolFinalizationController.java
@@ -89,7 +89,6 @@ public class ProtocolFinalizationController extends AbstractController {
pendingReq = container.getPendingRequest();
if (pendingReq != null) {
- //TODO finish
final Class<?> clazz = Class.forName(pendingReq.requestedModule());
if (clazz == null || !IModulInfo.class.isAssignableFrom(clazz)) {
@@ -127,7 +126,6 @@ public class ProtocolFinalizationController extends AbstractController {
* @throws EaafException In case of an internal error
* @throws IOException In case of a servlet error
*/
- // TODO reuse for the redirection to SP or own enpoint
@RequestMapping(value = ENDPOINT_ERRORHANDLING, method = {RequestMethod.GET, RequestMethod.POST})
public void errorHandling(final HttpServletRequest req, final HttpServletResponse resp)
throws EaafException, IOException {