summaryrefslogtreecommitdiff
path: root/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/AbstractAuthenticationDataBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/AbstractAuthenticationDataBuilder.java')
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/AbstractAuthenticationDataBuilder.java38
1 files changed, 27 insertions, 11 deletions
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/AbstractAuthenticationDataBuilder.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/AbstractAuthenticationDataBuilder.java
index 9d24eb8c..2c125cc0 100644
--- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/AbstractAuthenticationDataBuilder.java
+++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder/AbstractAuthenticationDataBuilder.java
@@ -22,7 +22,9 @@ package at.gv.egiz.eaaf.core.impl.idp.auth.builder;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.Serializable;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@@ -60,6 +62,9 @@ import at.gv.egiz.eaaf.core.impl.idp.AuthenticationData;
import at.gv.egiz.eaaf.core.impl.idp.auth.data.AuthProcessDataWrapper;
import at.gv.egiz.eaaf.core.impl.idp.auth.data.SimpleIdentityLinkAssertionParser;
import at.gv.egiz.eaaf.core.impl.utils.XPathUtils;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
public abstract class AbstractAuthenticationDataBuilder implements IAuthenticationDataBuilder {
private static final Logger log =
@@ -174,7 +179,7 @@ public abstract class AbstractAuthenticationDataBuilder implements IAuthenticati
// includedToGenericAuthData =
// authProcessData.getGenericSessionDataStorage().keySet();
// else
- initializeThreadLocalVariable(authProcessData, new HashSet<>());
+ initializeThreadLocalVariable(authProcessData, new HashSet<String>());
// ####################################################
// set general authData info's
@@ -224,23 +229,23 @@ public abstract class AbstractAuthenticationDataBuilder implements IAuthenticati
}
/**
- * Initialize Thread-Local holder for generic attributes set in authenticated session.
+ * Initialize Thread-Local holder for generic attributes set in authenticated
+ * session.
*
* @param authProcessData Current authentication data holder
- * @param data {@link Collection} of generic attribute-names
- * @throws EaafAuthenticationException In case of an error
+ * @param set Initial set of attributes of this holder
+ * @throws EaafAuthenticationException In case of an error
*/
- protected void initializeThreadLocalVariable(@NonNull final IAuthProcessDataContainer authProcessData,
- Set<String> data)
+ protected void initializeThreadLocalVariable(
+ @NonNull final IAuthProcessDataContainer authProcessData, Set<String> set)
throws EaafAuthenticationException {
try {
- authProcessData.setGenericDataToSession(GENERIC_ATTR_CONTAINER, data);
+ authProcessData.setGenericDataToSession(GENERIC_ATTR_CONTAINER, new AttributeListHolder(set));
} catch (EaafStorageException e) {
throw new EaafAuthenticationException("builder.11", new Object[] { e.getMessage() }, e);
}
-
}
/**
@@ -248,9 +253,10 @@ public abstract class AbstractAuthenticationDataBuilder implements IAuthenticati
*
* @param set {@link Collection} of generic attribute-names
*/
- @SuppressWarnings("unchecked")
protected Set<String> getThreadLocalVariable(@NonNull final IAuthProcessDataContainer authProcessData) {
- return authProcessData.getGenericDataFromSession(GENERIC_ATTR_CONTAINER, Set.class);
+ AttributeListHolder holder = authProcessData.getGenericDataFromSession(GENERIC_ATTR_CONTAINER,
+ AttributeListHolder.class);
+ return holder != null ? holder.getProcessedAttributes() : Collections.emptySet();
}
@@ -370,7 +376,7 @@ public abstract class AbstractAuthenticationDataBuilder implements IAuthenticati
initializeThreadLocalVariable(authProcessData,
authProcessData.getGenericSessionDataStorage().keySet());
} else {
- initializeThreadLocalVariable(authProcessData, new HashSet<>());
+ initializeThreadLocalVariable(authProcessData, new HashSet<String>());
}
// ####################################################
@@ -804,4 +810,14 @@ public abstract class AbstractAuthenticationDataBuilder implements IAuthenticati
}
+ @Data
+ @NoArgsConstructor
+ @AllArgsConstructor
+ private static class AttributeListHolder implements Serializable {
+ private static final long serialVersionUID = -7767295315249087217L;
+
+ private Set<String> processedAttributes;
+
+ }
+
}