aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--id.server/src/at/gv/egovernment/moa/id/auth/validator/IdentityLinkValidator.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/id.server/src/at/gv/egovernment/moa/id/auth/validator/IdentityLinkValidator.java b/id.server/src/at/gv/egovernment/moa/id/auth/validator/IdentityLinkValidator.java
index 24029120e..b19b40830 100644
--- a/id.server/src/at/gv/egovernment/moa/id/auth/validator/IdentityLinkValidator.java
+++ b/id.server/src/at/gv/egovernment/moa/id/auth/validator/IdentityLinkValidator.java
@@ -31,7 +31,7 @@ public class IdentityLinkValidator implements Constants {
/** Xpath prefix for reaching ECDSA Namespaces */
private static final String ECDSA = ECDSA_PREFIX + ":";
/** Xpath expression to the root element */
- private static final String ROOT = "/" + SAML + "Assertion/";
+ private static final String ROOT = "";
/** Xpath expression to the SAML:SubjectConfirmationData element */
private static final String SAML_SUBJECT_CONFIRMATION_DATA_XPATH =
ROOT
@@ -92,8 +92,9 @@ public class IdentityLinkValidator implements Constants {
*/
public void validate(IdentityLink identityLink) throws ValidateException {
+ Element samlAssertion = identityLink.getSamlAssertion();
//Search the SAML:ASSERTION Object (A2.054)
- if (identityLink.getSamlAssertion() == null)
+ if (samlAssertion == null)
throw new ValidateException("validator.00", null);
// Check how many saml:Assertion/saml:AttributeStatement/
@@ -101,7 +102,7 @@ public class IdentityLinkValidator implements Constants {
// saml:SubjectConfirmationData/pr:Person of type
// PhysicalPersonType exist (A2.056)
NodeList nl =
- XPathUtils.selectNodeList(identityLink.getSamlAssertion(), PERSON_XPATH);
+ XPathUtils.selectNodeList(samlAssertion, PERSON_XPATH);
// If we have just one Person-Element we don't need to check the attributes
int counterPhysicalPersonType = 0;
if (nl.getLength() > 1)
@@ -121,7 +122,7 @@ public class IdentityLinkValidator implements Constants {
throw new ValidateException("validator.01", null);
//Check the SAML:ATTRIBUTES
- nl = XPathUtils.selectNodeList(identityLink.getSamlAssertion(), ATTRIBUTE_XPATH);
+ nl = XPathUtils.selectNodeList(samlAssertion, ATTRIBUTE_XPATH);
for (int i = 0; i < nl.getLength(); i++) {
String attributeName =
XPathUtils.getAttributeValue(
@@ -154,7 +155,7 @@ public class IdentityLinkValidator implements Constants {
}
//Check if dsig:Signature exists
- Element dsigSignature = (Element) XPathUtils.selectSingleNode(identityLink.getSamlAssertion(),ROOT + DSIG + "Signature");
+ Element dsigSignature = (Element) XPathUtils.selectSingleNode(samlAssertion,ROOT + DSIG + "Signature");
if (dsigSignature==null) throw new ValidateException("validator.05", null);
}