aboutsummaryrefslogtreecommitdiff
path: root/id.server/src/at/gv/egovernment/moa/id/auth/builder
diff options
context:
space:
mode:
Diffstat (limited to 'id.server/src/at/gv/egovernment/moa/id/auth/builder')
-rw-r--r--id.server/src/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataAssertionBuilder.java7
-rw-r--r--id.server/src/at/gv/egovernment/moa/id/auth/builder/BPKBuilder.java (renamed from id.server/src/at/gv/egovernment/moa/id/auth/builder/VPKBuilder.java)28
-rw-r--r--id.server/src/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java11
-rw-r--r--id.server/src/at/gv/egovernment/moa/id/auth/builder/PersonDataBuilder.java13
4 files changed, 29 insertions, 30 deletions
diff --git a/id.server/src/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataAssertionBuilder.java b/id.server/src/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataAssertionBuilder.java
index fd7cb1a9d..ed2c863d2 100644
--- a/id.server/src/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataAssertionBuilder.java
+++ b/id.server/src/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataAssertionBuilder.java
@@ -19,13 +19,14 @@ public class AuthenticationDataAssertionBuilder implements Constants {
/**
* XML template for the <code>&lt;saml:Assertion&gt;</code> to be built
*/
+ //TODO MOA-ID check if NameQualifier NameQualifier urn:publicid:gv.at:cdid+ "is stable" in specification
private static final String AUTH_DATA =
"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" + NL +
"<saml:Assertion xmlns:saml=''" + SAML_NS_URI + "'' xmlns:pr=''" + PD_NS_URI + "'' xmlns:xsi=''" + XSI_NS_URI + "''" +
" MajorVersion=''1'' MinorVersion=''0'' AssertionID=''{0}'' Issuer=''{1}'' IssueInstant=''{2}''>" + NL +
" <saml:AttributeStatement>" + NL +
" <saml:Subject>" + NL +
- " <saml:NameIdentifier NameQualifier=''http://reference.e-government.gv.at/names/vpk/20020221#''>{3}</saml:NameIdentifier>" + NL +
+ " <saml:NameIdentifier NameQualifier=''urn:publicid:gv.at:cdid+''>{3}</saml:NameIdentifier>" + NL +
" <saml:SubjectConfirmation>" + NL +
" <saml:ConfirmationMethod>" + MOA_NS_URI + "cm</saml:ConfirmationMethod>" + NL +
" <saml:SubjectConfirmationData>{4}{5}</saml:SubjectConfirmationData>" + NL +
@@ -64,7 +65,7 @@ public class AuthenticationDataAssertionBuilder implements Constants {
* @param xmlPersonData <code>lt;pr:Person&gt;</code> element as a String
* @param xmlAuthBlock authentication block to be included in a
* <code>lt;saml:SubjectConfirmationData&gt;</code> element; may include
- * the <code>"ZMR-Zahl"</code> or not; may be empty
+ * the <code>"Stammzahl"</code> or not; may be empty
* @param xmlIdentityLink the IdentityLink
* @return the <code>&lt;saml:Assertion&gt;</code>
* @throws BuildException if an error occurs during the build process
@@ -89,7 +90,7 @@ public class AuthenticationDataAssertionBuilder implements Constants {
authData.getAssertionID(),
authData.getIssuer(),
authData.getIssueInstant(),
- authData.getVPK(),
+ authData.getPBK(),
removeXMLDeclaration(xmlAuthBlock),
removeXMLDeclaration(xmlIdentityLink),
removeXMLDeclaration(xmlPersonData),
diff --git a/id.server/src/at/gv/egovernment/moa/id/auth/builder/VPKBuilder.java b/id.server/src/at/gv/egovernment/moa/id/auth/builder/BPKBuilder.java
index c18156a01..706d0a39a 100644
--- a/id.server/src/at/gv/egovernment/moa/id/auth/builder/VPKBuilder.java
+++ b/id.server/src/at/gv/egovernment/moa/id/auth/builder/BPKBuilder.java
@@ -6,45 +6,43 @@ import at.gv.egovernment.moa.id.BuildException;
import at.gv.egovernment.moa.util.Base64Utils;
/**
- * Builder for the VPK, as defined in
- * <code>&quot;Ableitung f&uml;r die verfahrensspezifische Personenkennzeichnung&quot;</code>
+ * Builder for the BPK, as defined in
+ * <code>&quot;Ableitung f&uml;r die bereichsspezifische Personenkennzeichnung&quot;</code>
* version <code>1.0.1</code> from <code>&quot;reference.e-government.gv.at&quot;</code>.
*
* @author Paul Ivancsics
* @version $Id$
*/
-public class VPKBuilder {
+public class BPKBuilder {
/**
- * Builds the VPK from given parameters.
- * @param identificationValue "ZMR-Zahl"
- * @param dateOfBirth "Geburtsdatum"
+ * Builds the BPK from given parameters.
+ * @param identificationValue Base64 encoded "Stammzahl"
* @param target "Verfahrensname"; will be transformed to lower case
- * @return VPK in a BASE64 encoding
- * @throws BuildException while building the VPK
+ * @return PBK in a BASE64 encoding
+ * @throws BuildException while building the BPK
*/
- public String buildVPK(String identificationValue, String dateOfBirth, String target)
+ public String buildBPK(String identificationValue, String target)
throws BuildException {
if (identificationValue == null || identificationValue.length() == 0
- || dateOfBirth == null || dateOfBirth.length() == 0
|| target == null || target.length() == 0)
throw new BuildException(
"builder.00",
- new Object[] {"VPK",
+ new Object[] {"BPK",
"Unvollständige Parameterangaben: identificationValue=" + identificationValue +
- ",dateOfBirth=" + dateOfBirth + ",target=" + target});
- String basisbegriff = identificationValue + "+" + dateOfBirth + "+" + target.toLowerCase();
+ ",target=" + target});
+ String basisbegriff = identificationValue + "+" + target;
try {
MessageDigest md = MessageDigest.getInstance("SHA-1");
- byte[] hash = md.digest(basisbegriff.getBytes());
+ byte[] hash = md.digest(basisbegriff.getBytes("ISO-8859-1"));
String hashBase64 = Base64Utils.encode(hash);
return hashBase64;
}
catch (Exception ex) {
throw new BuildException(
"builder.00",
- new Object[] {"VPK", ex.toString()},
+ new Object[] {"BPK", ex.toString()},
ex);
}
}
diff --git a/id.server/src/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java b/id.server/src/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java
index f8c287cb6..961a40303 100644
--- a/id.server/src/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java
+++ b/id.server/src/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java
@@ -21,12 +21,10 @@ public class CreateXMLSignatureRequestBuilder implements Constants {
private static final String CREATE_XML_SIGNATURE_REQUEST =
"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" + nl +
"<sl11:CreateXMLSignatureRequest xmlns:dsig=''" + DSIG_NS_URI + "'' xmlns:sl10=''" + SL10_NS_URI + "'' xmlns:sl11=''" + SL11_NS_URI + "''>" + nl +
- " <sl11:KeyboxIdentifier>SecureSignatureKeypair</sl11:KeyboxIdentifier>" + nl +
- //TODO RS Lsg Switch SecureSignatureKeypair / CertifiedKeyPair
- //" <sl11:KeyboxIdentifier>CertifiedKeypair</sl11:KeyboxIdentifier>" + nl +
+ " <sl11:KeyboxIdentifier>{1}</sl11:KeyboxIdentifier>" + nl +
" <sl11:DataObjectInfo Structure=''detached''>" + nl +
" <sl10:DataObject Reference=''''/>" + nl +
- "{1}" +
+ "{2}" +
" </sl11:DataObjectInfo>" + nl +
" <sl11:SignatureInfo>" + nl +
" <sl11:SignatureEnvironment>" + nl +
@@ -47,14 +45,15 @@ public class CreateXMLSignatureRequestBuilder implements Constants {
* Builds the <code>&lt;CreateXMLSignatureRequest&gt;</code>.
*
* @param authBlock String representation of XML authentication block
+ * @param keyBoxIdentfier the key box identifier which will be used (e.g. CertifiedKeyPair)
* @return String representation of <code>&lt;CreateXMLSignatureRequest&gt;</code>
*/
- public String build(String authBlock, String[] dsigTransformInfos) {
+ public String build(String authBlock, String keyBoxIdentifier, String[] dsigTransformInfos) {
String dsigTransformInfosString = "";
for (int i = 0; i < dsigTransformInfos.length; i++)
dsigTransformInfosString += dsigTransformInfos[i];
String request = MessageFormat.format(
- CREATE_XML_SIGNATURE_REQUEST, new Object[] { authBlock, dsigTransformInfosString });
+ CREATE_XML_SIGNATURE_REQUEST, new Object[] { authBlock, keyBoxIdentifier, dsigTransformInfosString });
return request;
}
}
diff --git a/id.server/src/at/gv/egovernment/moa/id/auth/builder/PersonDataBuilder.java b/id.server/src/at/gv/egovernment/moa/id/auth/builder/PersonDataBuilder.java
index 85ec1cb7f..819ed79bb 100644
--- a/id.server/src/at/gv/egovernment/moa/id/auth/builder/PersonDataBuilder.java
+++ b/id.server/src/at/gv/egovernment/moa/id/auth/builder/PersonDataBuilder.java
@@ -26,24 +26,25 @@ public class PersonDataBuilder {
/**
* Builds the <code>&lt;pr:Person&gt;</code> element.<br/>
* Utilizes the parsed <code>&lt;prPerson&gt;</code> from the identity link
- * and the information regarding inclusion of <code>"ZMR-Zahl"</code> in the
+ * and the information regarding inclusion of <code>"Stammzahl"</code> in the
* <code>&lt;pr:Person&gt;</code> data.
*
* @param identityLink <code>IdentityLink</code> containing the
* attribute <code>prPerson</code>
- * @param provideZMRZahl true if <code>"ZMR-Zahl"</code> is to be included;
+ * @param provideStammzahl true if <code>"Stammzahl"</code> is to be included;
* false otherwise
* @return the <code>&lt;pr:Person&gt;</code> element as a String
* @throws BuildException on any error
*/
- public String build(IdentityLink identityLink, boolean provideZMRZahl)
+ public String build(IdentityLink identityLink, boolean provideStammzahl)
throws BuildException {
try {
Element prPerson = (Element)identityLink.getPrPerson().cloneNode(true);
- if (! provideZMRZahl) {
- Node prIdentification = XPathUtils.selectSingleNode(prPerson, "pr:Identification");
- prPerson.removeChild(prIdentification);
+ if (! provideStammzahl) {
+ Node prIdentification = XPathUtils.selectSingleNode(prPerson, "pr:Identification/pr:Value");
+ //remove IdentificationValue
+ prIdentification.getFirstChild().setNodeValue("");
}
String xmlString = DOMUtils.serializeNode(prPerson);
return xmlString;