diff options
author | lalber <lukas.alber@iaik.tugraz.at> | 2021-03-10 10:24:40 +0100 |
---|---|---|
committer | Thomas <> | 2021-03-30 20:22:05 +0200 |
commit | c8873b5d8fbd5dd2ae7b35e6426f36bc42e107a0 (patch) | |
tree | b16cc5b35f93e936f8e50c0ddabe11d4685bff68 /eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth | |
parent | 4e9499a1c39498f8646799e947e38f5f491c1428 (diff) | |
download | EAAF-Components-c8873b5d8fbd5dd2ae7b35e6426f36bc42e107a0.tar.gz EAAF-Components-c8873b5d8fbd5dd2ae7b35e6426f36bc42e107a0.tar.bz2 EAAF-Components-c8873b5d8fbd5dd2ae7b35e6426f36bc42e107a0.zip |
Second version of feature
Diffstat (limited to 'eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth')
-rw-r--r-- | eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ProtocolAuthenticationService.java | 18 |
1 files changed, 18 insertions, 0 deletions
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 687a5401..ec2c8b04 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 @@ -38,12 +38,14 @@ import org.springframework.context.ApplicationContext; import org.springframework.lang.NonNull; import org.springframework.lang.Nullable; import org.springframework.stereotype.Service; +import org.springframework.util.SerializationUtils; import at.gv.egiz.components.eventlog.api.EventConstants; import at.gv.egiz.eaaf.core.api.IRequest; import at.gv.egiz.eaaf.core.api.IRequestStorage; import at.gv.egiz.eaaf.core.api.IStatusMessenger; import at.gv.egiz.eaaf.core.api.data.EaafConstants; +import at.gv.egiz.eaaf.core.api.data.ExceptionContainer; import at.gv.egiz.eaaf.core.api.gui.IGuiBuilderConfiguration; import at.gv.egiz.eaaf.core.api.gui.IGuiBuilderConfigurationFactory; import at.gv.egiz.eaaf.core.api.gui.IGuiFormBuilder; @@ -59,6 +61,7 @@ import at.gv.egiz.eaaf.core.api.idp.auth.services.IProtocolAuthenticationService import at.gv.egiz.eaaf.core.api.idp.slo.SloInformationInterface; import at.gv.egiz.eaaf.core.api.logging.IRevisionLogger; import at.gv.egiz.eaaf.core.api.logging.IStatisticLogger; +import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage; import at.gv.egiz.eaaf.core.api.utils.IPendingRequestIdGenerationStrategy; import at.gv.egiz.eaaf.core.exceptions.AuthnRequestValidatorException; import at.gv.egiz.eaaf.core.exceptions.EaafAuthenticationException; @@ -76,6 +79,7 @@ import at.gv.egiz.eaaf.core.impl.idp.controller.protocols.RequestImpl; import at.gv.egiz.eaaf.core.impl.utils.KeyValueUtils; import at.gv.egiz.eaaf.core.impl.utils.ServletUtils; + @Service public class ProtocolAuthenticationService implements IProtocolAuthenticationService { private static final Logger log = LoggerFactory.getLogger(ProtocolAuthenticationService.class); @@ -109,6 +113,12 @@ public class ProtocolAuthenticationService implements IProtocolAuthenticationSer @Autowired private IRevisionLogger revisionsLogger; + @Autowired(required = true) + protected ITransactionStorage transactionStorage; + + @Autowired IPendingRequestIdGenerationStrategy requestIdValidationStragegy; + + private IGuiFormBuilder guiBuilder; private final HashSet<String> logOnInfoLevel = new HashSet<>(); @@ -231,6 +241,14 @@ public class ProtocolAuthenticationService implements IProtocolAuthenticationSer displayException(req, resp, errorData); + // Put pending request + ExceptionContainer exceptionContainer = new ExceptionContainer(protocolRequest, throwable); + byte[] serialized = SerializationUtils.serialize(exceptionContainer); +// transactionStorage.put(req.getParameter(EaafConstants.PARAM_HTTP_ERROR_CODE), serialized, -1); + String errorId = requestIdValidationStragegy.validateAndGetPendingRequestId(req.getParameter(EaafConstants.PARAM_HTTP_ERROR_CODE)); + transactionStorage.put(errorId, serialized, -1); + + // log Error to technical log logExceptionToTechnicalLog(errorData); |