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 2012/06/07 12:32:00 UTC

svn commit: r1347560 - in /cxf/trunk: rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/renew/SAMLRenewUnitTest.java

Author: coheigea
Date: Thu Jun  7 10:32:00 2012
New Revision: 1347560

URL: http://svn.apache.org/viewvc?rev=1347560&view=rev
Log:
Adding a "sendRenewing" property to the STSClient

Modified:
    cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java
    cxf/trunk/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/renew/SAMLRenewUnitTest.java

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java?rev=1347560&r1=1347559&r2=1347560&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java Thu Jun  7 10:32:00 2012
@@ -165,6 +165,7 @@ public class STSClient implements Config
     protected boolean isSpnego;
     protected boolean enableLifetime;
     protected int ttl = 300;
+    protected boolean sendRenewing = true;
     protected boolean allowRenewing = true;
     protected boolean allowRenewingAfterExpiry;
     
@@ -215,6 +216,10 @@ public class STSClient implements Config
         this.enableLifetime = enableLifetime;
     }
     
+    public void setSendRenewing(boolean sendRenewing) {
+        this.sendRenewing = sendRenewing;
+    }
+    
     /**
      * Sets the WS-P policy that is applied to communications between this client and the remote server
      * if no value is supplied for {@link #setWsdlLocation(String)}.
@@ -720,14 +725,16 @@ public class STSClient implements Config
         }
         
         // Write out renewal semantics
-        writer.writeStartElement("wst", "Renewing", namespace);
-        if (!allowRenewing) {
-            writer.writeAttribute(null, "Allow", "false");
-        }
-        if (allowRenewing && allowRenewingAfterExpiry) {
-            writer.writeAttribute(null, "OK", "true");
+        if (sendRenewing) {
+            writer.writeStartElement("wst", "Renewing", namespace);
+            if (!allowRenewing) {
+                writer.writeAttribute(null, "Allow", "false");
+            }
+            if (allowRenewing && allowRenewingAfterExpiry) {
+                writer.writeAttribute(null, "OK", "true");
+            }
+            writer.writeEndElement();
         }
-        writer.writeEndElement();
         
         writer.writeEndElement();
 

Modified: cxf/trunk/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/renew/SAMLRenewUnitTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/renew/SAMLRenewUnitTest.java?rev=1347560&r1=1347559&r2=1347560&view=diff
==============================================================================
--- cxf/trunk/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/renew/SAMLRenewUnitTest.java (original)
+++ cxf/trunk/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/renew/SAMLRenewUnitTest.java Thu Jun  7 10:32:00 2012
@@ -223,10 +223,47 @@ public class SAMLRenewUnitTest extends A
         bus.shutdown(true);
     }
     
+    @org.junit.Test
+    public void testRenewDisabled() throws Exception {
+        SpringBusFactory bf = new SpringBusFactory();
+        URL busFile = SAMLRenewUnitTest.class.getResource("cxf-client-unit.xml");
+
+        Bus bus = bf.createBus(busFile.toString());
+        SpringBusFactory.setDefaultBus(bus);
+        SpringBusFactory.setThreadDefaultBus(bus);
+        
+        String wsdlLocation = 
+            "https://localhost:" + STSPORT + "/SecurityTokenService/Transport?wsdl";
+        
+        // Request the token
+        SecurityToken token = 
+            requestSecurityToken(bus, wsdlLocation, WSConstants.WSS_SAML_TOKEN_TYPE, 300, false, false);
+        assertNotNull(token);
+        
+        // Validate the token
+        List<SecurityToken> validatedTokens = validateSecurityToken(bus, wsdlLocation, token);
+        assertFalse(validatedTokens.isEmpty());
+        assertTrue(validatedTokens.get(0).equals(token));
+
+        // Renew the token
+        SecurityToken renewedToken = renewSecurityToken(bus, wsdlLocation, token, false);
+        assertFalse(token.equals(renewedToken));
+        
+        // Validate the renewed token
+        validateSecurityToken(bus, wsdlLocation, renewedToken);
+
+        bus.shutdown(true);
+    }
     
     private SecurityToken requestSecurityToken(
         Bus bus, String wsdlLocation, String tokenType, int ttl, boolean allowExpired
     ) throws Exception {
+        return requestSecurityToken(bus, wsdlLocation, tokenType, ttl, allowExpired, true);
+    }
+    
+    private SecurityToken requestSecurityToken(
+        Bus bus, String wsdlLocation, String tokenType, int ttl, boolean allowExpired, boolean sendRenewing
+    ) throws Exception {
         STSClient stsClient = new STSClient(bus);
         stsClient.setWsdlLocation(wsdlLocation);
         stsClient.setServiceName("{http://docs.oasis-open.org/ws-sx/ws-trust/200512/}SecurityTokenService");
@@ -250,6 +287,7 @@ public class SAMLRenewUnitTest extends A
         stsClient.setRequiresEntropy(true);
         stsClient.setKeySize(128);
         stsClient.setAddressingNamespace("http://www.w3.org/2005/08/addressing");
+        stsClient.setSendRenewing(sendRenewing);
 
         return stsClient.requestSecurityToken("https://localhost:8081/doubleit/services/doubleittransport");
     }



Re: svn commit: r1347560 - in /cxf/trunk: rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/renew/SAMLRenewUnitTest.java

Posted by Glen Mazza <gm...@talend.com>.
I'm not sure on this point, and perhaps just hair-splitting, but when 
you have a boolean value whose usage is optional and rarely declared, I 
suspect the "true" value should be the non-common setting (the 
non-default one), as that makes it more self-documenting and clearer 
that you're doing something non-default (and hence, you can just go 
ahead and remove the declaration if you want normal functionality).  
I.e., instead of "sendRenewing=false" having "hideRenewing=true" might 
be better.

Glen


On 06/07/2012 06:32 AM, coheigea@apache.org wrote:
> Author: coheigea
> Date: Thu Jun  7 10:32:00 2012
> New Revision: 1347560
>
> URL: http://svn.apache.org/viewvc?rev=1347560&view=rev
> Log:
> Adding a "sendRenewing" property to the STSClient
>
> Modified:
>      cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java
>      cxf/trunk/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/renew/SAMLRenewUnitTest.java
>
> Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java
> URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java?rev=1347560&r1=1347559&r2=1347560&view=diff
> ==============================================================================
> --- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java (original)
> +++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java Thu Jun  7 10:32:00 2012
> @@ -165,6 +165,7 @@ public class STSClient implements Config
>       protected boolean isSpnego;
>       protected boolean enableLifetime;
>       protected int ttl = 300;
> +    protected boolean sendRenewing = true;
>       protected boolean allowRenewing = true;
>       protected boolean allowRenewingAfterExpiry;
>
> @@ -215,6 +216,10 @@ public class STSClient implements Config
>           this.enableLifetime = enableLifetime;
>       }
>
> +    public void setSendRenewing(boolean sendRenewing) {
> +        this.sendRenewing = sendRenewing;
> +    }
> +
>       /**
>        * Sets the WS-P policy that is applied to communications between this client and the remote server
>        * if no value is supplied for {@link #setWsdlLocation(String)}.
> @@ -720,14 +725,16 @@ public class STSClient implements Config
>           }
>
>           // Write out renewal semantics
> -        writer.writeStartElement("wst", "Renewing", namespace);
> -        if (!allowRenewing) {
> -            writer.writeAttribute(null, "Allow", "false");
> -        }
> -        if (allowRenewing&&  allowRenewingAfterExpiry) {
> -            writer.writeAttribute(null, "OK", "true");
> +        if (sendRenewing) {
> +            writer.writeStartElement("wst", "Renewing", namespace);
> +            if (!allowRenewing) {
> +                writer.writeAttribute(null, "Allow", "false");
> +            }
> +            if (allowRenewing&&  allowRenewingAfterExpiry) {
> +                writer.writeAttribute(null, "OK", "true");
> +            }
> +            writer.writeEndElement();
>           }
> -        writer.writeEndElement();
>
>           writer.writeEndElement();
>
>
> Modified: cxf/trunk/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/renew/SAMLRenewUnitTest.java
> URL: http://svn.apache.org/viewvc/cxf/trunk/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/renew/SAMLRenewUnitTest.java?rev=1347560&r1=1347559&r2=1347560&view=diff
> ==============================================================================
> --- cxf/trunk/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/renew/SAMLRenewUnitTest.java (original)
> +++ cxf/trunk/services/sts/systests/advanced/src/test/java/org/apache/cxf/systest/sts/renew/SAMLRenewUnitTest.java Thu Jun  7 10:32:00 2012
> @@ -223,10 +223,47 @@ public class SAMLRenewUnitTest extends A
>           bus.shutdown(true);
>       }
>
> +    @org.junit.Test
> +    public void testRenewDisabled() throws Exception {
> +        SpringBusFactory bf = new SpringBusFactory();
> +        URL busFile = SAMLRenewUnitTest.class.getResource("cxf-client-unit.xml");
> +
> +        Bus bus = bf.createBus(busFile.toString());
> +        SpringBusFactory.setDefaultBus(bus);
> +        SpringBusFactory.setThreadDefaultBus(bus);
> +
> +        String wsdlLocation =
> +            "https://localhost:" + STSPORT + "/SecurityTokenService/Transport?wsdl";
> +
> +        // Request the token
> +        SecurityToken token =
> +            requestSecurityToken(bus, wsdlLocation, WSConstants.WSS_SAML_TOKEN_TYPE, 300, false, false);
> +        assertNotNull(token);
> +
> +        // Validate the token
> +        List<SecurityToken>  validatedTokens = validateSecurityToken(bus, wsdlLocation, token);
> +        assertFalse(validatedTokens.isEmpty());
> +        assertTrue(validatedTokens.get(0).equals(token));
> +
> +        // Renew the token
> +        SecurityToken renewedToken = renewSecurityToken(bus, wsdlLocation, token, false);
> +        assertFalse(token.equals(renewedToken));
> +
> +        // Validate the renewed token
> +        validateSecurityToken(bus, wsdlLocation, renewedToken);
> +
> +        bus.shutdown(true);
> +    }
>
>       private SecurityToken requestSecurityToken(
>           Bus bus, String wsdlLocation, String tokenType, int ttl, boolean allowExpired
>       ) throws Exception {
> +        return requestSecurityToken(bus, wsdlLocation, tokenType, ttl, allowExpired, true);
> +    }
> +
> +    private SecurityToken requestSecurityToken(
> +        Bus bus, String wsdlLocation, String tokenType, int ttl, boolean allowExpired, boolean sendRenewing
> +    ) throws Exception {
>           STSClient stsClient = new STSClient(bus);
>           stsClient.setWsdlLocation(wsdlLocation);
>           stsClient.setServiceName("{http://docs.oasis-open.org/ws-sx/ws-trust/200512/}SecurityTokenService");
> @@ -250,6 +287,7 @@ public class SAMLRenewUnitTest extends A
>           stsClient.setRequiresEntropy(true);
>           stsClient.setKeySize(128);
>           stsClient.setAddressingNamespace("http://www.w3.org/2005/08/addressing");
> +        stsClient.setSendRenewing(sendRenewing);
>
>           return stsClient.requestSecurityToken("https://localhost:8081/doubleit/services/doubleittransport");
>       }
>
>


-- 
Glen Mazza
Talend Community Coders
coders.talend.com
blog: www.jroller.com/gmazza