You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2015/02/06 22:06:16 UTC
cxf git commit: [CXF-6085] Completing the preparation work
Repository: cxf
Updated Branches:
refs/heads/master 004321a2e -> 6145bb8a8
[CXF-6085] Completing the preparation work
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/6145bb8a
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/6145bb8a
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/6145bb8a
Branch: refs/heads/master
Commit: 6145bb8a8ad58d37e5729aad5b6ae225ccd3763b
Parents: 004321a
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Fri Feb 6 21:05:58 2015 +0000
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Fri Feb 6 21:05:58 2015 +0000
----------------------------------------------------------------------
.../cxf/rs/security/jose/jwe/AbstractJweEncryption.java | 11 ++++++++++-
.../org/apache/cxf/rs/security/jose/jwe/JweHeaders.java | 9 +++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/6145bb8a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AbstractJweEncryption.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AbstractJweEncryption.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AbstractJweEncryption.java
index 66d0a51..9103ecf 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AbstractJweEncryption.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AbstractJweEncryption.java
@@ -137,6 +137,7 @@ public abstract class AbstractJweEncryption implements JweEncryptionProvider {
}
theHeaders.setContentEncryptionAlgorithm(getContentAlgorithm());
+ JweHeaders protectedHeaders = null;
if (jweHeaders != null) {
if (jweHeaders.getKeyEncryptionAlgorithm() != null
&& (getKeyAlgorithm() == null
@@ -146,6 +147,14 @@ public abstract class AbstractJweEncryption implements JweEncryptionProvider {
throw new SecurityException();
}
theHeaders.asMap().putAll(jweHeaders.asMap());
+ if (jweHeaders.getProtectedHeaders() != null
+ && !jweHeaders.asMap().entrySet().containsAll(theHeaders.asMap().entrySet())) {
+ jweHeaders.getProtectedHeaders().asMap().putAll(theHeaders.asMap());
+ }
+ protectedHeaders = jweHeaders.getProtectedHeaders() != null
+ ? jweHeaders.getProtectedHeaders() : theHeaders;
+ } else {
+ protectedHeaders = theHeaders;
}
@@ -161,7 +170,7 @@ public abstract class AbstractJweEncryption implements JweEncryptionProvider {
byte[] jweContentEncryptionKey =
getEncryptedContentEncryptionKey(theHeaders, theCek);
- JweHeaders protectedHeaders = theHeaders;
+
String protectedHeadersJson = writer.headersToJson(protectedHeaders);
byte[] additionalEncryptionParam = getAAD(protectedHeadersJson, aad);
http://git-wip-us.apache.org/repos/asf/cxf/blob/6145bb8a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweHeaders.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweHeaders.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweHeaders.java
index f049ffb..ead32de 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweHeaders.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweHeaders.java
@@ -31,6 +31,7 @@ import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
public class JweHeaders extends JoseHeaders {
+ private JweHeaders protectedHeaders;
public JweHeaders() {
}
@@ -99,4 +100,12 @@ public class JweHeaders extends JoseHeaders {
String base64UrlHeadersInJson = Base64UrlUtility.encode(headerBytes);
return StringUtils.toBytesASCII(base64UrlHeadersInJson);
}
+
+ public JweHeaders getProtectedHeaders() {
+ return protectedHeaders;
+ }
+
+ public void setProtectedHeaders(JweHeaders protectedHeaders) {
+ this.protectedHeaders = protectedHeaders;
+ }
}