Repository: cxf
Updated Branches:
  refs/heads/3.0.x-fixes e5ac7504f -> 553b11172


More updates to JwsCompactConsumer


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/553b1117
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/553b1117
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/553b1117

Branch: refs/heads/3.0.x-fixes
Commit: 553b11172aed3c3575e6d4f5d9530f8484e21f80
Parents: e5ac750
Author: Sergey Beryozkin <[email protected]>
Authored: Wed Oct 28 15:50:47 2015 +0000
Committer: Sergey Beryozkin <[email protected]>
Committed: Wed Oct 28 15:53:02 2015 +0000

----------------------------------------------------------------------
 .../cxf/rs/security/jose/jws/JwsCompactProducer.java    |  5 ++++-
 .../security/jose/jws/JwsCompactReaderWriterTest.java   | 12 ++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/553b1117/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
----------------------------------------------------------------------
diff --git 
a/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
 
b/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
index 5b4c760..8ed3dc6 100644
--- 
a/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
+++ 
b/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
@@ -109,6 +109,9 @@ public class JwsCompactProducer {
     }
     
     public String signWith(JwsSignatureProvider signer) {
+        if (headers.getSignatureAlgorithm() == null) {
+            headers.setSignatureAlgorithm(signer.getAlgorithm());
+        }
         byte[] bytes = StringUtils.toBytesUTF8(getSigningInput());
         byte[] sig = signer.sign(getJwsHeaders(), bytes);
         return setSignatureBytes(sig);
@@ -135,7 +138,7 @@ public class JwsCompactProducer {
         return getJwsHeaders().getSignatureAlgorithm();
     }
     private void checkAlgorithm() {
-        if (getAlgorithm() == null) {
+        if (getAlgorithm() == null && 
PhaseInterceptorChain.getCurrentMessage() != null) {
             Message m = PhaseInterceptorChain.getCurrentMessage();
             Properties props = KeyManagementUtils.loadStoreProperties(m, 
false, 
                                                                       
JoseConstants.RSSEC_SIGNATURE_OUT_PROPS, 

http://git-wip-us.apache.org/repos/asf/cxf/blob/553b1117/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java
----------------------------------------------------------------------
diff --git 
a/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java
 
b/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java
index 7292a52..4624dd4 100644
--- 
a/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java
+++ 
b/rt/rs/security/jose-parent/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java
@@ -130,6 +130,18 @@ public class JwsCompactReaderWriterTest extends Assert {
             new HmacJwsSignatureVerifier(ENCODED_MAC_KEY, 
SignatureAlgorithm.HS256)));
     }
     @Test
+    public void testNoneSignature() throws Exception {
+        JwtClaims claims = new JwtClaims();
+        claims.setClaim("a", "b");
+        JwsJwtCompactProducer producer = new JwsJwtCompactProducer(claims);
+        producer.signWith(new NoneJwsSignatureProvider());
+                
+        JwsJwtCompactConsumer consumer = new 
JwsJwtCompactConsumer(producer.getSignedEncodedJws());
+        assertTrue(consumer.verifySignatureWith(new 
NoneJwsSignatureVerifier()));
+        JwtClaims claims2 = consumer.getJwtClaims();
+        assertEquals(claims, claims2);
+    }
+    @Test
     public void testWriteReadJwsUnsigned() throws Exception {
         JwsHeaders headers = new JwsHeaders(JoseType.JWT);
         headers.setSignatureAlgorithm(SignatureAlgorithm.NONE);

Reply via email to