aboutsummaryrefslogtreecommitdiff
path: root/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/SAMLEngineUtils.java
diff options
context:
space:
mode:
authorFlorian Reimair <florian.reimair@iaik.tugraz.at>2014-01-21 14:38:35 +0100
committerFlorian Reimair <florian.reimair@iaik.tugraz.at>2014-01-27 16:38:56 +0100
commit9cb68043945f53246928443cea723b58ee2b1c24 (patch)
treec612cb928452d27d6fc5e3014d5f044fac643b22 /id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/SAMLEngineUtils.java
parent6c7a6f8e222e4fb39a11c220b63e785f2037d428 (diff)
downloadmoa-id-spss-9cb68043945f53246928443cea723b58ee2b1c24.tar.gz
moa-id-spss-9cb68043945f53246928443cea723b58ee2b1c24.tar.bz2
moa-id-spss-9cb68043945f53246928443cea723b58ee2b1c24.zip
updated samlengine
Diffstat (limited to 'id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/SAMLEngineUtils.java')
-rw-r--r--id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/SAMLEngineUtils.java58
1 files changed, 55 insertions, 3 deletions
diff --git a/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/SAMLEngineUtils.java b/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/SAMLEngineUtils.java
index 60f7c3091..c77cc700a 100644
--- a/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/SAMLEngineUtils.java
+++ b/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/SAMLEngineUtils.java
@@ -46,6 +46,8 @@ import org.opensaml.saml2.core.AuthnContext;
import org.opensaml.saml2.core.AuthnRequest;
import org.opensaml.saml2.core.AuthnStatement;
import org.opensaml.saml2.core.Issuer;
+import org.opensaml.saml2.core.LogoutRequest;
+import org.opensaml.saml2.core.LogoutResponse;
import org.opensaml.saml2.core.NameID;
import org.opensaml.saml2.core.Response;
import org.opensaml.saml2.core.Status;
@@ -65,6 +67,7 @@ import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
+import eu.stork.peps.auth.engine.core.CustomAttributeQuery;
import eu.stork.peps.auth.engine.core.QAAAttribute;
import eu.stork.peps.auth.engine.core.RequestedAttribute;
import eu.stork.peps.auth.engine.core.SAMLCore;
@@ -72,6 +75,7 @@ import eu.stork.peps.auth.engine.core.SPApplication;
import eu.stork.peps.auth.engine.core.SPCountry;
import eu.stork.peps.auth.engine.core.SPInstitution;
import eu.stork.peps.auth.engine.core.SPSector;
+import eu.stork.peps.auth.engine.core.impl.CustomAttributeQueryBuilder;
import eu.stork.peps.exceptions.STORKSAMLEngineException;
import eu.stork.peps.exceptions.STORKSAMLEngineRuntimeException;
@@ -190,8 +194,16 @@ public final class SAMLEngineUtils {
* @return the XML object
*/
public static XMLObject createSamlObject(final QName qname) {
- return Configuration.getBuilderFactory().getBuilder(qname).buildObject(
- qname);
+ if (qname.toString().endsWith(CustomAttributeQuery.DEFAULT_ELEMENT_LOCAL_NAME))
+ {
+ CustomAttributeQueryBuilder builder = new CustomAttributeQueryBuilder();
+ return builder.buildObject(qname);
+ }
+ else
+ {
+ return Configuration.getBuilderFactory().getBuilder(qname).buildObject(
+ qname);
+ }
}
/**
@@ -612,7 +624,7 @@ public final class SAMLEngineUtils {
return authnRequest;
}
- public static AttributeQuery generateSAMLAttrQueryRequest(final String identifier,
+ /*public static AttributeQuery generateSAMLAttrQueryRequest(final String identifier,
final SAMLVersion version, final DateTime issueInstant) {
LOG.debug("Generate attribute query request.");
final AttributeQuery attrQueryRequest = (AttributeQuery) SAMLEngineUtils
@@ -622,7 +634,47 @@ public final class SAMLEngineUtils {
attrQueryRequest.setVersion(version);
attrQueryRequest.setIssueInstant(issueInstant);
return attrQueryRequest;
+ }*/
+
+ public static CustomAttributeQuery generateSAMLAttrQueryRequest(final String identifier,
+ final SAMLVersion version, final DateTime issueInstant) {
+ LOG.debug("Generate attribute query request.");
+ final CustomAttributeQuery attrQueryRequest = (CustomAttributeQuery) SAMLEngineUtils
+ .createSamlObject(CustomAttributeQuery.DEFAULT_ELEMENT_NAME);
+
+ attrQueryRequest.setID(identifier);
+ attrQueryRequest.setVersion(version);
+ attrQueryRequest.setIssueInstant(issueInstant);
+ return attrQueryRequest;
}
+
+ public static LogoutRequest generateSAMLLogoutRequest(final String identifier,
+ final SAMLVersion version, final DateTime issueInstant) {
+ LOG.debug("Generate logout request.");
+ final LogoutRequest logoutRequest = (LogoutRequest)SAMLEngineUtils.
+ createSamlObject(LogoutRequest.DEFAULT_ELEMENT_NAME);
+
+
+ logoutRequest.setID(identifier);
+ logoutRequest.setVersion(version);
+ logoutRequest.setIssueInstant(issueInstant);
+ return logoutRequest;
+ }
+
+ public static LogoutResponse generateSAMLLogoutResponse(final String identifier,
+ final SAMLVersion version, final DateTime issueInstant,
+ final Status status, final String inResponseTo) {
+ LOG.debug("Generate logout response.");
+ final LogoutResponse logoutResponse = (LogoutResponse)SAMLEngineUtils.
+ createSamlObject(LogoutResponse.DEFAULT_ELEMENT_NAME);
+
+ logoutResponse.setInResponseTo(inResponseTo);
+ logoutResponse.setStatus(status);
+ logoutResponse.setID(identifier);
+ logoutResponse.setVersion(version);
+ logoutResponse.setIssueInstant(issueInstant);
+ return logoutResponse;
+ }
/**
* Generate service provider application.