Return-Path: X-Original-To: apmail-cxf-commits-archive@www.apache.org Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3EC5A189DF for ; Wed, 28 Oct 2015 15:53:24 +0000 (UTC) Received: (qmail 43271 invoked by uid 500); 28 Oct 2015 15:53:24 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 43206 invoked by uid 500); 28 Oct 2015 15:53:24 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 43197 invoked by uid 99); 28 Oct 2015 15:53:24 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Oct 2015 15:53:24 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id E0E02DFCCE; Wed, 28 Oct 2015 15:53:23 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sergeyb@apache.org To: commits@cxf.apache.org Message-Id: <0255430e8d654de2ba10da18e3843d85@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: cxf git commit: More updates to JwsCompactConsumer Date: Wed, 28 Oct 2015 15:53:23 +0000 (UTC) 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 Authored: Wed Oct 28 15:50:47 2015 +0000 Committer: Sergey Beryozkin 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);