diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2020-02-19 13:22:40 +0100 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2020-02-19 13:22:40 +0100 | 
| commit | 7c361d450a97b9d79a1da90961fd727d2808f9c8 (patch) | |
| tree | f09f3e97191e2cbc8b123b4758ccfc8d7c5d736b /id/server/idserverlib/src | |
| parent | b2a4e40dd5fa0af6e8ecb185c2dce95e9a69019b (diff) | |
| download | moa-id-spss-7c361d450a97b9d79a1da90961fd727d2808f9c8.tar.gz moa-id-spss-7c361d450a97b9d79a1da90961fd727d2808f9c8.tar.bz2 moa-id-spss-7c361d450a97b9d79a1da90961fd727d2808f9c8.zip | |
inject mandate-profiles into eIDAS MS-Connector request in case of SEMPER mode
Diffstat (limited to 'id/server/idserverlib/src')
2 files changed, 51 insertions, 0 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EidSpMandateProfilesAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EidSpMandateProfilesAttributeBuilder.java new file mode 100644 index 000000000..c6eb74dd6 --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EidSpMandateProfilesAttributeBuilder.java @@ -0,0 +1,50 @@ +package at.gv.egovernment.moa.id.protocols.builder.attributes; + +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.gv.egiz.eaaf.core.api.data.ExtendedPVPAttributeDefinitions; +import at.gv.egiz.eaaf.core.api.idp.IAttributeBuilder; +import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator; +import at.gv.egiz.eaaf.core.api.idp.IAuthData; +import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration; +import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException; +import at.gv.egiz.eaaf.core.exceptions.UnavailableAttributeException; +import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters; + +public class EidSpMandateProfilesAttributeBuilder implements IAttributeBuilder { +  private static final Logger log = LoggerFactory.getLogger(EidSpMandateProfilesAttributeBuilder.class); + +  @Override +  public <T> T build(final ISPConfiguration oaParam, final IAuthData authData, final IAttributeGenerator<T> g) +      throws AttributeBuilderException { +    if (oaParam instanceof IOAAuthParameters && ((IOAAuthParameters) oaParam).isShowMandateCheckBox()) { +      return g.buildStringAttribute(getFriendlyName(), getName(), +          StringUtils.join( +              ((IOAAuthParameters) oaParam).getMandateProfiles(), ",")); + +    } else { +      log.info("{} is only available in AuthHandler context", getFriendlyName()); + +    } +    throw new UnavailableAttributeException(getName()); + +  } + +  @Override +  public <T> T buildEmpty(final IAttributeGenerator<T> g) { +    return g.buildEmptyAttribute(getFriendlyName(), getName()); + +  } + +  @Override +  public String getName() { +    return ExtendedPVPAttributeDefinitions.SP_USESMANDATES_NAME; +  } + +  private String getFriendlyName() { +    return ExtendedPVPAttributeDefinitions.SP_USESMANDATES_FRIENDLY_NAME; +  } + +} diff --git a/id/server/idserverlib/src/main/resources/META-INF/services/at.gv.egiz.eaaf.core.api.idp.IAttributeBuilder b/id/server/idserverlib/src/main/resources/META-INF/services/at.gv.egiz.eaaf.core.api.idp.IAttributeBuilder index a10b9b3e0..408066bf2 100644 --- a/id/server/idserverlib/src/main/resources/META-INF/services/at.gv.egiz.eaaf.core.api.idp.IAttributeBuilder +++ b/id/server/idserverlib/src/main/resources/META-INF/services/at.gv.egiz.eaaf.core.api.idp.IAttributeBuilder @@ -23,3 +23,4 @@ at.gv.egovernment.moa.id.protocols.builder.attributes.HolderOfKey  at.gv.egovernment.moa.id.protocols.builder.attributes.BPKListAttributeBuilder  at.gv.egovernment.moa.id.protocols.builder.attributes.MandateNaturalPersonBPKListAttributeBuilder  at.gv.egovernment.moa.id.protocols.builder.attributes.MandateNaturalPersonEncBPKListAttributeBuilder +at.gv.egovernment.moa.id.protocols.builder.attributes.EidSpMandateProfilesAttributeBuilders | 
