diff options
Diffstat (limited to 'eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth')
2 files changed, 52 insertions, 20 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 f5c687f1..8f87cbfa 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 @@ -26,17 +26,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Map.Entry; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.lang.NonNull; -import org.springframework.util.Assert; -import org.springframework.util.Base64Utils; -import org.w3c.dom.DOMException; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - import at.gv.egiz.eaaf.core.api.IRequest; import at.gv.egiz.eaaf.core.api.data.EaafConstants; import at.gv.egiz.eaaf.core.api.data.ExtendedPvpAttributeDefinitions; @@ -60,6 +49,17 @@ 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 org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.lang.NonNull; +import org.springframework.util.Assert; +import org.springframework.util.Base64Utils; +import org.w3c.dom.DOMException; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + public abstract class AbstractAuthenticationDataBuilder implements IAuthenticationDataBuilder { private static final Logger log = LoggerFactory.getLogger(AbstractAuthenticationDataBuilder.class); @@ -145,10 +145,11 @@ public abstract class AbstractAuthenticationDataBuilder implements IAuthenticati * @param authProcessData Authentication information holder from current pending * request * @param pendingReq current pending request + * @throws EaafAuthenticationException In case inconsistent authentication data */ private void buildInternalAuthDataGeneric(@NonNull final IAuthData authData, @NonNull final IAuthProcessDataContainer authProcessData, - @NonNull final IRequest pendingReq) { + @NonNull final IRequest pendingReq) throws EaafAuthenticationException { Assert.notNull(pendingReq, "PendingRequest is null"); Assert.notNull(authData, "AuthData is null"); Assert.notNull(authProcessData, "AuthProcessData is null"); @@ -227,9 +228,10 @@ public abstract class AbstractAuthenticationDataBuilder implements IAuthenticati * @param authData Current authentication data * @param authProcessData Authentication information holder from current pending * request + * @throws EaafAuthenticationException In case inconsistent authentication data */ private void setCitizenCountryCode(final AuthenticationData authData, - final IAuthProcessDataContainer authProcessData) { + final IAuthProcessDataContainer authProcessData) throws EaafAuthenticationException { includedToGenericAuthData.remove(PvpAttributeDefinitions.EID_ISSUING_NATION_NAME); final String pvpCccAttr = authProcessData .getGenericDataFromSession(PvpAttributeDefinitions.EID_ISSUING_NATION_NAME, String.class); @@ -239,8 +241,9 @@ public abstract class AbstractAuthenticationDataBuilder implements IAuthenticati } else { if (authData.isForeigner()) { - // TODO: - log.warn("Foreign citizen country NOT set yet!"); + log.warn("EID_Issuing_Nation NOT SET for foreign citizen."); + throw new EaafAuthenticationException("builder.11", + new Object[] { "EID_Issuing_Nation NOT SET for foreign citizen." }); } else { authData.setCiticenCountryCode(basicConfig.getBasicConfiguration( @@ -324,7 +327,7 @@ public abstract class AbstractAuthenticationDataBuilder implements IAuthenticati protected void generateDeprecatedBasicAuthData(final AuthenticationData authData, final IRequest pendingReq, final IAuthProcessDataContainer authProcessData) throws EaafBuilderException, EaafConfigurationException, XPathException, DOMException, - EaafParserException { + EaafParserException, EaafAuthenticationException { if (authProcessData.getGenericSessionDataStorage() != null && !authProcessData.getGenericSessionDataStorage().isEmpty()) { diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/data/AuthProcessDataWrapper.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/data/AuthProcessDataWrapper.java index a6017789..988a78b6 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/data/AuthProcessDataWrapper.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/data/AuthProcessDataWrapper.java @@ -19,13 +19,11 @@ package at.gv.egiz.eaaf.core.impl.idp.auth.data; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; - -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.util.TimeZone; import at.gv.egiz.eaaf.core.api.data.EaafConstants; import at.gv.egiz.eaaf.core.api.idp.EaafAuthProcessDataConstants; @@ -33,6 +31,10 @@ import at.gv.egiz.eaaf.core.api.idp.auth.data.IAuthProcessDataContainer; import at.gv.egiz.eaaf.core.api.idp.auth.data.IIdentityLink; import at.gv.egiz.eaaf.core.exceptions.EaafStorageException; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public class AuthProcessDataWrapper implements IAuthProcessDataContainer, EaafAuthProcessDataConstants { private static final Logger log = LoggerFactory.getLogger(AuthProcessDataWrapper.class); @@ -72,6 +74,19 @@ public class AuthProcessDataWrapper * (non-Javadoc) * * @see + * at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setIssueInstant( + * java.lang.String) + */ + @Override + public void setIssueInstant(final Date issueInstant) { + authProcessData.put(VALUE_ISSUEINSTANT, buildDateTimeUtc(issueInstant)); + + } + + /* + * (non-Javadoc) + * + * @see * at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#isAuthenticated() */ @Override @@ -305,4 +320,18 @@ public class AuthProcessDataWrapper } } + + /** + * Builds a <code>dateTime</code> value in UTC from a <code>Calendar</code> value. + * + * @param date the <code>Calendar</code> value + * @return the <code>dateTime</code> value + */ + public static String buildDateTimeUtc(final Date date) { + + final SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); + f.setTimeZone(TimeZone.getTimeZone("UTC")); + + return f.format(date.getTime()); + } } |