You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2018/07/09 11:39:54 UTC

[cxf] branch 3.1.x-fixes updated (79d95e2 -> 1652d3d)

This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a change to branch 3.1.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git.


    from 79d95e2  Recording .gitmergeinfo Changes
     new 2b1d5c0  Add the ability to create LogoutRequests
     new 1652d3d  Recording .gitmergeinfo Changes

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitmergeinfo                                      |  1 +
 .../saml/sso/SamlpRequestComponentBuilder.java     | 38 ++++++++++++++++++++--
 .../security/saml/sso/AuthnRequestBuilderTest.java | 28 ++++++++++++++++
 3 files changed, 65 insertions(+), 2 deletions(-)


[cxf] 01/02: Add the ability to create LogoutRequests

Posted by co...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch 3.1.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit 2b1d5c05ef30131707006bc32e8dc17024836411
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Mon Jul 9 11:47:26 2018 +0100

    Add the ability to create LogoutRequests
    
    (cherry picked from commit 004f4c153a439fa1a4ac4205c7b213e563008366)
    (cherry picked from commit c1058bdf0680a90eda71b88166854d18d4b76bb8)
    
    # Conflicts:
    #	rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/SamlpRequestComponentBuilder.java
    #	rt/rs/security/sso/saml/src/test/java/org/apache/cxf/rs/security/saml/sso/AuthnRequestBuilderTest.java
---
 .../saml/sso/SamlpRequestComponentBuilder.java     | 38 ++++++++++++++++++++--
 .../security/saml/sso/AuthnRequestBuilderTest.java | 28 ++++++++++++++++
 2 files changed, 64 insertions(+), 2 deletions(-)

diff --git a/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/SamlpRequestComponentBuilder.java b/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/SamlpRequestComponentBuilder.java
index 5280cb8..eeb13de 100644
--- a/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/SamlpRequestComponentBuilder.java
+++ b/rt/rs/security/sso/saml/src/main/java/org/apache/cxf/rs/security/saml/sso/SamlpRequestComponentBuilder.java
@@ -19,6 +19,7 @@
 
 package org.apache.cxf.rs.security.saml.sso;
 
+import java.util.Date;
 import java.util.List;
 import java.util.UUID;
 
@@ -32,6 +33,8 @@ import org.opensaml.saml.saml2.core.AuthnContextComparisonTypeEnumeration;
 import org.opensaml.saml.saml2.core.AuthnContextDeclRef;
 import org.opensaml.saml.saml2.core.AuthnRequest;
 import org.opensaml.saml.saml2.core.Issuer;
+import org.opensaml.saml.saml2.core.LogoutRequest;
+import org.opensaml.saml.saml2.core.NameID;
 import org.opensaml.saml.saml2.core.NameIDPolicy;
 import org.opensaml.saml.saml2.core.RequestedAuthnContext;
 
@@ -41,7 +44,9 @@ import org.opensaml.saml.saml2.core.RequestedAuthnContext;
 public final class SamlpRequestComponentBuilder {
     
     private static volatile SAMLObjectBuilder<AuthnRequest> authnRequestBuilder;
-    
+
+    private static volatile SAMLObjectBuilder<LogoutRequest> logoutRequestBuilder;
+
     private static volatile SAMLObjectBuilder<Issuer> issuerBuilder;
     
     private static volatile SAMLObjectBuilder<NameIDPolicy> nameIDBuilder;
@@ -89,7 +94,36 @@ public final class SamlpRequestComponentBuilder {
         
         return authnRequest;
     }
-    
+
+    public static LogoutRequest createLogoutRequest(
+        SAMLVersion version,
+        Issuer issuer,
+        String destination,
+        String consent,
+        Date notOnOrAfter,
+        String reason,
+        NameID nameID
+    ) {
+        if (logoutRequestBuilder == null) {
+            logoutRequestBuilder = (SAMLObjectBuilder<LogoutRequest>)
+                builderFactory.getBuilder(LogoutRequest.DEFAULT_ELEMENT_NAME);
+        }
+        LogoutRequest logoutRequest = logoutRequestBuilder.buildObject();
+        logoutRequest.setID("_" + UUID.randomUUID());
+        logoutRequest.setVersion(version);
+        logoutRequest.setIssueInstant(new DateTime());
+        logoutRequest.setDestination(destination);
+        logoutRequest.setConsent(consent);
+        logoutRequest.setIssuer(issuer);
+        if (notOnOrAfter != null) {
+            logoutRequest.setNotOnOrAfter(new DateTime(notOnOrAfter.getTime()));
+        }
+        logoutRequest.setReason(reason);
+        logoutRequest.setNameID(nameID);
+
+        return logoutRequest;
+    }
+
     @SuppressWarnings("unchecked")
     public static Issuer createIssuer(
         String issuerValue
diff --git a/rt/rs/security/sso/saml/src/test/java/org/apache/cxf/rs/security/saml/sso/AuthnRequestBuilderTest.java b/rt/rs/security/sso/saml/src/test/java/org/apache/cxf/rs/security/saml/sso/AuthnRequestBuilderTest.java
index 254d0f8..48a140d 100644
--- a/rt/rs/security/sso/saml/src/test/java/org/apache/cxf/rs/security/saml/sso/AuthnRequestBuilderTest.java
+++ b/rt/rs/security/sso/saml/src/test/java/org/apache/cxf/rs/security/saml/sso/AuthnRequestBuilderTest.java
@@ -20,6 +20,7 @@
 package org.apache.cxf.rs.security.saml.sso;
 
 import java.util.Collections;
+import java.util.Date;
 
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -28,11 +29,15 @@ import org.apache.cxf.helpers.DOMUtils;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
 import org.apache.wss4j.common.saml.OpenSAMLUtil;
+import org.apache.wss4j.common.saml.bean.NameIDBean;
+import org.apache.wss4j.common.saml.builder.SAML2ComponentBuilder;
 import org.opensaml.saml.common.SAMLVersion;
 import org.opensaml.saml.saml2.core.AuthnContextClassRef;
 import org.opensaml.saml.saml2.core.AuthnContextComparisonTypeEnumeration;
 import org.opensaml.saml.saml2.core.AuthnRequest;
 import org.opensaml.saml.saml2.core.Issuer;
+import org.opensaml.saml.saml2.core.LogoutRequest;
+import org.opensaml.saml.saml2.core.NameID;
 import org.opensaml.saml.saml2.core.NameIDPolicy;
 import org.opensaml.saml.saml2.core.RequestedAuthnContext;
 
@@ -107,4 +112,27 @@ public class AuthnRequestBuilderTest extends org.junit.Assert {
             + "underscores, hyphens, and periods.", authnRequest.getID().matches("^[_a-zA-Z][-_0-9a-zA-Z\\.]+$"));
     }
     
+    @org.junit.Test
+    public void testCreateLogoutRequest() throws Exception {
+        Document doc = DOMUtils.createDocument();
+
+        Issuer issuer =
+            SamlpRequestComponentBuilder.createIssuer("http://localhost:9001/app");
+
+        NameIDBean nameIdBean = new NameIDBean();
+        nameIdBean.setNameValue("uid=joe,ou=people,ou=saml-demo,o=example.com");
+        nameIdBean.setNameQualifier("www.example.com");
+        NameID nameID = SAML2ComponentBuilder.createNameID(nameIdBean);
+
+        Date notOnOrAfter = new Date();
+        notOnOrAfter.setTime(notOnOrAfter.getTime() + 60L * 1000L);
+        LogoutRequest logoutRequest =
+            SamlpRequestComponentBuilder.createLogoutRequest(SAMLVersion.VERSION_20, issuer, null, null,
+                                                             notOnOrAfter, null, nameID);
+
+        Element policyElement = OpenSAMLUtil.toDom(logoutRequest, doc);
+        doc.appendChild(policyElement);
+        // String outputString = DOM2Writer.nodeToString(policyElement);
+        assertNotNull(policyElement);
+    }
 }


[cxf] 02/02: Recording .gitmergeinfo Changes

Posted by co...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch 3.1.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit 1652d3dc0cc2e2680faea58aeb96148ff8008b28
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Mon Jul 9 12:38:43 2018 +0100

    Recording .gitmergeinfo Changes
---
 .gitmergeinfo | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitmergeinfo b/.gitmergeinfo
index 234b489..11aaf96 100644
--- a/.gitmergeinfo
+++ b/.gitmergeinfo
@@ -1320,6 +1320,7 @@ M be99c53015cb37a692d2e4dbe3682c7407f29b99
 M bfd27cfed696520ccdfef5183f5a4f887884290a
 M c01c68ddda10ec6db492b86d818498bec0bf4228
 M c02442840de4e8820c4df14a8cead58d5b86d5ec
+M c1058bdf0680a90eda71b88166854d18d4b76bb8
 M c212240f696e3387df19bbcf22d1851aff320078
 M c255034b2d6eb99bb2753b3d6932af06fd6cbe16
 M c2b13b7473781c3c1a4225a01c319cf8aa92cd0f