aboutsummaryrefslogtreecommitdiff
path: root/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/handler/IEidasAttributeHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/handler/IEidasAttributeHandler.java')
-rw-r--r--modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/handler/IEidasAttributeHandler.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/handler/IEidasAttributeHandler.java b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/handler/IEidasAttributeHandler.java
index 36deba30..15650e29 100644
--- a/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/handler/IEidasAttributeHandler.java
+++ b/modules/eidas_proxy-sevice/src/main/java/at/asitplus/eidas/specific/modules/msproxyservice/handler/IEidasAttributeHandler.java
@@ -3,12 +3,19 @@ package at.asitplus.eidas.specific.modules.msproxyservice.handler;
import javax.annotation.Nullable;
import at.asitplus.eidas.specific.core.config.ServiceProviderConfiguration;
+import at.asitplus.eidas.specific.modules.msproxyservice.exception.EidasProxyServiceException;
import at.gv.egiz.eaaf.core.api.idp.IEidAuthData;
+import eu.eidas.auth.commons.light.ILightRequest;
import lombok.NonNull;
/**
* Handlers for attribute-processing that requires more features than a simple mapping.
*
+ * <p><b>Important:</b> That interface provides attribute-specific extension- and modification hooks for
+ * post-processing of service configuration and authentication data. If more than one attribute-specific implementation
+ * operates on the same process, concurrency issues are possible because any implementation of that interface are
+ * executed independent from each other.</p>
+ *
* @author tlenz
*
*/
@@ -17,6 +24,10 @@ public interface IEidasAttributeHandler {
/**
* Perform attribute-releated post-processing of internal Service-Provider configuration.
*
+ * <p><b>Important:</b> Modifications done by that method are independent from any other implementation of
+ * the same interface and there is no specific order if more than one handler are selected. <br>
+ * Therefore, concurrency issues has to be noticed!</p>
+ *
* @param spConfig SP configuration that was build from incoming eIDAS Authn. request.
*/
void performSpConfigPostprocessing(@NonNull ServiceProviderConfiguration spConfig);
@@ -25,12 +36,18 @@ public interface IEidasAttributeHandler {
/**
* Perform attribute-specific post-processing of authentication information.
*
+ * <p><b>Important:</b> Modifications done by that method are independent from any other implementation of
+ * the same interface and there is no specific order if more than one handler are selected. <br>
+ * Therefore, concurrency issues has to be noticed!</p>
+ *
* @param authData authentication information from ID Austria system that should be post processed.
*/
@NonNull
void performAuthDataPostprocessing(@NonNull IEidAuthData authData);
+
+
/**
* Build eIDAS attribute-value from authentication data.
*
@@ -40,6 +57,15 @@ public interface IEidasAttributeHandler {
@Nullable
String buildAttributeValue(@NonNull IEidAuthData eidAuthData);
+
+ /**
+ * Extended validation of incoming eIDAS AuthnRequest.
+ *
+ * @param eidasRequest Incoming eIDAS authentication request
+ * @throws EidasProxyServiceException In case of a validation error
+ */
+ void validateAuthnRequest(ILightRequest eidasRequest) throws EidasProxyServiceException;
+
}