From b8807c30b2ef988226573c6b5bf2f6b3de6aac4d Mon Sep 17 00:00:00 2001 From: Thomas <> Date: Wed, 31 May 2023 09:05:19 +0200 Subject: refact(core): change some more internal representation to make it JSON serializable --- .../builder/AbstractAuthenticationDataBuilder.java | 38 +++++++++++++++------- 1 file changed, 27 insertions(+), 11 deletions(-) (limited to 'eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/builder') 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()); // #################################################### // 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 data) + protected void initializeThreadLocalVariable( + @NonNull final IAuthProcessDataContainer authProcessData, Set 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 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()); } // #################################################### @@ -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 processedAttributes; + + } + } -- cgit v1.2.3