aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/CitizenTokenBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/CitizenTokenBuilder.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/CitizenTokenBuilder.java79
1 files changed, 59 insertions, 20 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/CitizenTokenBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/CitizenTokenBuilder.java
index 0b280fe48..18f981243 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/CitizenTokenBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/CitizenTokenBuilder.java
@@ -10,7 +10,13 @@ import org.opensaml.xml.schema.XSString;
import org.opensaml.xml.schema.impl.XSIntegerBuilder;
import org.opensaml.xml.schema.impl.XSStringBuilder;
+import at.gv.egovernment.moa.id.BuildException;
+import at.gv.egovernment.moa.id.auth.AuthenticationServer;
import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;
+import at.gv.egovernment.moa.id.config.ConfigurationException;
+import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;
+import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
+import at.gv.egovernment.moa.id.data.AuthenticationData;
import at.gv.egovernment.moa.id.protocols.pvp2x.binding.MOARequest;
import at.gv.egovernment.moa.id.protocols.pvp2x.utils.SAML2Utils;
@@ -100,27 +106,60 @@ public class CitizenTokenBuilder {
AuthenticationSession authSession) {
AttributeStatement statement =
SAML2Utils.createSAMLObject(AttributeStatement.class);
+
+ //TL: AuthData generation is moved out from VerifyAuthBlockServlet
+ try {
+
+ OAAuthParameter oaParam = AuthConfigurationProvider.getInstance()
+ .getOnlineApplicationParameter(authSession.getPublicOAURLPrefix());
+ boolean useUTC = oaParam.getUseUTC();
- Attribute pvpVersion = buildPVPVersion("2.1");
- Attribute secClass = buildSecClass(3);
- Attribute principalName = buildPrincipalName(authSession.getAuthData().getFamilyName());
- Attribute givenName = buildGivenName(authSession.getAuthData().getGivenName());
- Attribute birthdate = buildBirthday(authSession.getAuthData().getDateOfBirth());
- Attribute bpk = buildBPK(authSession.getAuthData().getIdentificationValue());
- Attribute eid_citizen_qaa = buildEID_CITIZEN_QAALEVEL(3);
- Attribute eid_issuing_nation = buildEID_ISSUING_NATION("AT");
- Attribute eid_sector_for_id = buildEID_SECTOR_FOR_IDENTIFIER(authSession.getAuthData().getIdentificationType());
-
- statement.getAttributes().add(pvpVersion);
- statement.getAttributes().add(secClass);
- statement.getAttributes().add(principalName);
- statement.getAttributes().add(givenName);
- statement.getAttributes().add(birthdate);
- statement.getAttributes().add(bpk);
- statement.getAttributes().add(eid_citizen_qaa);
- statement.getAttributes().add(eid_issuing_nation);
- statement.getAttributes().add(eid_sector_for_id);
+ AuthenticationData authData;
+
+ authData = AuthenticationServer.buildAuthenticationData(authSession,
+ authSession.getXMLVerifySignatureResponse(),
+ useUTC,
+ authSession.isForeigner());
+
+ Attribute pvpVersion = buildPVPVersion("2.1");
+ Attribute secClass = buildSecClass(3);
+ Attribute principalName = buildPrincipalName(authData.getFamilyName());
+ Attribute givenName = buildGivenName(authData.getGivenName());
+ Attribute birthdate = buildBirthday(authData.getDateOfBirth());
+
+ //TL: getIdentificationValue holds the baseID --> change to pBK
+ Attribute bpk;
+ if (authSession.getBusinessService())
+ bpk = buildBPK(authData.getWBPK());
+ else
+ bpk = buildBPK(authData.getBPK());
+
+ Attribute eid_citizen_qaa = buildEID_CITIZEN_QAALEVEL(3);
+ Attribute eid_issuing_nation = buildEID_ISSUING_NATION("AT");
+ Attribute eid_sector_for_id = buildEID_SECTOR_FOR_IDENTIFIER(authData.getIdentificationType());
+
+ statement.getAttributes().add(pvpVersion);
+ statement.getAttributes().add(secClass);
+ statement.getAttributes().add(principalName);
+ statement.getAttributes().add(givenName);
+ statement.getAttributes().add(birthdate);
+ statement.getAttributes().add(bpk);
+ statement.getAttributes().add(eid_citizen_qaa);
+ statement.getAttributes().add(eid_issuing_nation);
+ statement.getAttributes().add(eid_sector_for_id);
+
+ return statement;
+
+ } catch (ConfigurationException e) {
+
+ // TODO: check Exception Handling
+ return null;
+ } catch (BuildException e) {
+
+ // TODO: check Exception Handling
+ return null;
+ }
- return statement;
+
}
}