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 6FD4818784 for ; Tue, 15 Sep 2015 15:07:47 +0000 (UTC) Received: (qmail 63214 invoked by uid 500); 15 Sep 2015 15:07:46 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 63142 invoked by uid 500); 15 Sep 2015 15:07:46 -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 63118 invoked by uid 99); 15 Sep 2015 15:07:46 -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; Tue, 15 Sep 2015 15:07:46 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 883F1DFFA2; Tue, 15 Sep 2015 15:07:46 +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: <3a42881fa2f048959beb6c47188f4825@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: cxf git commit: Multiple JwsJson entries need to have the same b64 status Date: Tue, 15 Sep 2015 15:07:46 +0000 (UTC) Repository: cxf Updated Branches: refs/heads/3.0.x-fixes 6d0242c03 -> f9688ca9f Multiple JwsJson entries need to have the same b64 status Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/f9688ca9 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/f9688ca9 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/f9688ca9 Branch: refs/heads/3.0.x-fixes Commit: f9688ca9f357a44a636a9a9ce714e10451e32182 Parents: 6d0242c Author: Sergey Beryozkin Authored: Tue Sep 15 16:06:29 2015 +0100 Committer: Sergey Beryozkin Committed: Tue Sep 15 16:07:30 2015 +0100 ---------------------------------------------------------------------- .../apache/cxf/rs/security/jose/jws/JwsJsonConsumer.java | 9 +-------- .../apache/cxf/rs/security/jose/jws/JwsJsonProducer.java | 9 ++++----- 2 files changed, 5 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/f9688ca9/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonConsumer.java ---------------------------------------------------------------------- diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonConsumer.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonConsumer.java index d1ca673..f03e0e5 100644 --- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonConsumer.java +++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonConsumer.java @@ -41,7 +41,6 @@ public class JwsJsonConsumer { private String jwsSignedDocument; private String jwsPayload; private List signatures = new LinkedList(); - private boolean detached; /** * @param jwsSignedDocument * signed JWS Document @@ -70,7 +69,6 @@ public class JwsJsonConsumer { LOG.warning("JSON JWS has no payload"); throw new JwsException(JwsException.Error.INVALID_JSON_JWS); } - detached = detachedPayload != null; List> signatureArray = CastUtils.cast((List)jsonObjectMap.get("signatures")); if (signatureArray != null) { if (jsonObjectMap.containsKey("signature")) { @@ -92,12 +90,7 @@ public class JwsJsonConsumer { } private Boolean validateB64Status() { - if (!detached) { - return JwsJsonProducer.validateb64Status(signatures); - } else { - return Boolean.TRUE; - } - + return JwsJsonProducer.validateB64Status(signatures); } protected JwsJsonSignatureEntry getSignatureObject(Map signatureEntry) { String protectedHeader = (String)signatureEntry.get("protected"); http://git-wip-us.apache.org/repos/asf/cxf/blob/f9688ca9/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonProducer.java ---------------------------------------------------------------------- diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonProducer.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonProducer.java index 554f340..acb6475 100644 --- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonProducer.java +++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonProducer.java @@ -67,10 +67,12 @@ public class JwsJsonProducer { if (signatures.isEmpty()) { return null; } + + Boolean b64Status = validateB64Status(signatures); StringBuilder sb = new StringBuilder(); sb.append("{"); if (!detached) { - sb.append("\"payload\":\"" + getActualPayload() + "\""); + sb.append("\"payload\":\"" + getActualPayload(b64Status) + "\""); sb.append(","); } if (!supportFlattened || signatures.size() > 1) { @@ -89,9 +91,6 @@ public class JwsJsonProducer { sb.append("}"); return sb.toString(); } - private String getActualPayload() { - return getActualPayload(validateb64Status(signatures)); - } public List getSignatureEntries() { return signatures; } @@ -192,7 +191,7 @@ public class JwsJsonProducer { } } } - static Boolean validateb64Status(List signatures) { + static Boolean validateB64Status(List signatures) { Set b64Set = new LinkedHashSet(); for (JwsJsonSignatureEntry entry : signatures) { JwsHeaders headers = entry.getProtectedHeader();