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/07/22 21:38:19 UTC
[1/3] cxf git commit: making JoseHeaders abstract and its
setAlgorithm protected with lots of related changes
Repository: cxf
Updated Branches:
refs/heads/master b53208275 -> 4ac83c790
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/cookbook/JwsJoseCookBookTest.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/cookbook/JwsJoseCookBookTest.java b/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/cookbook/JwsJoseCookBookTest.java
index 2c2435d..f606beb 100644
--- a/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/cookbook/JwsJoseCookBookTest.java
+++ b/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/cookbook/JwsJoseCookBookTest.java
@@ -27,8 +27,6 @@ import javax.crypto.Cipher;
import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
-import org.apache.cxf.rs.security.jose.JoseHeaders;
-import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
import org.apache.cxf.rs.security.jose.jwa.AlgorithmUtils;
import org.apache.cxf.rs.security.jose.jwa.SignatureAlgorithm;
import org.apache.cxf.rs.security.jose.jwk.JsonWebKey;
@@ -37,6 +35,7 @@ import org.apache.cxf.rs.security.jose.jwk.JwkUtils;
import org.apache.cxf.rs.security.jose.jws.EcDsaJwsSignatureProvider;
import org.apache.cxf.rs.security.jose.jws.JwsCompactConsumer;
import org.apache.cxf.rs.security.jose.jws.JwsCompactProducer;
+import org.apache.cxf.rs.security.jose.jws.JwsHeaders;
import org.apache.cxf.rs.security.jose.jws.JwsJsonConsumer;
import org.apache.cxf.rs.security.jose.jws.JwsJsonProducer;
import org.apache.cxf.rs.security.jose.jws.JwsUtils;
@@ -354,10 +353,10 @@ public class JwsJoseCookBookTest {
@Test
public void testRSAv15Signature() throws Exception {
JwsCompactProducer compactProducer = new JwsCompactProducer(PAYLOAD);
- compactProducer.getJoseHeaders().setAlgorithm(AlgorithmUtils.RS_SHA_256_ALGO);
- compactProducer.getJoseHeaders().setKeyId(RSA_KID_VALUE);
+ compactProducer.getJwsHeaders().setSignatureAlgorithm(SignatureAlgorithm.RS256);
+ compactProducer.getJwsHeaders().setKeyId(RSA_KID_VALUE);
JsonMapObjectReaderWriter reader = new JsonMapObjectReaderWriter();
- assertEquals(reader.toJson(compactProducer.getJoseHeaders().asMap()), RSA_V1_5_SIGNATURE_PROTECTED_HEADER_JSON);
+ assertEquals(reader.toJson(compactProducer.getJwsHeaders().asMap()), RSA_V1_5_SIGNATURE_PROTECTED_HEADER_JSON);
assertEquals(compactProducer.getUnsignedEncodedJws(),
RSA_V1_5_SIGNATURE_PROTECTED_HEADER + "." + ENCODED_PAYLOAD);
JsonWebKeys jwks = readKeySet("cookbookPrivateSet.txt");
@@ -376,8 +375,8 @@ public class JwsJoseCookBookTest {
JwsJsonProducer jsonProducer = new JwsJsonProducer(PAYLOAD);
assertEquals(jsonProducer.getPlainPayload(), PAYLOAD);
assertEquals(jsonProducer.getUnsignedEncodedPayload(), ENCODED_PAYLOAD);
- JoseHeaders protectedHeader = new JoseHeaders();
- protectedHeader.setAlgorithm(AlgorithmUtils.RS_SHA_256_ALGO);
+ JwsHeaders protectedHeader = new JwsHeaders();
+ protectedHeader.setSignatureAlgorithm(SignatureAlgorithm.RS256);
protectedHeader.setKeyId(RSA_KID_VALUE);
jsonProducer.signWith(JwsUtils.getSignatureProvider(rsaKey,
SignatureAlgorithm.RS256), protectedHeader);
@@ -400,10 +399,10 @@ public class JwsJoseCookBookTest {
}
JwsCompactProducer compactProducer = new JwsCompactProducer(PAYLOAD);
- compactProducer.getJoseHeaders().setAlgorithm(AlgorithmUtils.PS_SHA_384_ALGO);
- compactProducer.getJoseHeaders().setKeyId(RSA_KID_VALUE);
+ compactProducer.getJwsHeaders().setSignatureAlgorithm(SignatureAlgorithm.PS384);
+ compactProducer.getJwsHeaders().setKeyId(RSA_KID_VALUE);
JsonMapObjectReaderWriter reader = new JsonMapObjectReaderWriter();
- assertEquals(reader.toJson(compactProducer.getJoseHeaders().asMap()), RSA_PSS_SIGNATURE_PROTECTED_HEADER_JSON);
+ assertEquals(reader.toJson(compactProducer.getJwsHeaders().asMap()), RSA_PSS_SIGNATURE_PROTECTED_HEADER_JSON);
assertEquals(compactProducer.getUnsignedEncodedJws(),
RSA_PSS_SIGNATURE_PROTECTED_HEADER + "." + ENCODED_PAYLOAD);
JsonWebKeys jwks = readKeySet("cookbookPrivateSet.txt");
@@ -421,8 +420,8 @@ public class JwsJoseCookBookTest {
JwsJsonProducer jsonProducer = new JwsJsonProducer(PAYLOAD);
assertEquals(jsonProducer.getPlainPayload(), PAYLOAD);
assertEquals(jsonProducer.getUnsignedEncodedPayload(), ENCODED_PAYLOAD);
- JoseHeaders protectedHeader = new JoseHeaders();
- protectedHeader.setAlgorithm(AlgorithmUtils.PS_SHA_384_ALGO);
+ JwsHeaders protectedHeader = new JwsHeaders();
+ protectedHeader.setSignatureAlgorithm(SignatureAlgorithm.PS384);
protectedHeader.setKeyId(RSA_KID_VALUE);
jsonProducer.signWith(JwsUtils.getSignatureProvider(rsaKey, SignatureAlgorithm.PS384), protectedHeader);
assertEquals(jsonProducer.getJwsJsonSignedDocument().length(), RSA_PSS_JSON_GENERAL_SERIALIZATION.length());
@@ -447,10 +446,10 @@ public class JwsJoseCookBookTest {
}
try {
JwsCompactProducer compactProducer = new JwsCompactProducer(PAYLOAD);
- compactProducer.getJoseHeaders().setAlgorithm(AlgorithmUtils.ES_SHA_512_ALGO);
- compactProducer.getJoseHeaders().setKeyId(ECDSA_KID_VALUE);
+ compactProducer.getJwsHeaders().setSignatureAlgorithm(SignatureAlgorithm.ES512);
+ compactProducer.getJwsHeaders().setKeyId(ECDSA_KID_VALUE);
JsonMapObjectReaderWriter reader = new JsonMapObjectReaderWriter();
- assertEquals(reader.toJson(compactProducer.getJoseHeaders().asMap()),
+ assertEquals(reader.toJson(compactProducer.getJwsHeaders().asMap()),
ECDSA_SIGNATURE_PROTECTED_HEADER_JSON);
assertEquals(compactProducer.getUnsignedEncodedJws(),
ECSDA_SIGNATURE_PROTECTED_HEADER + "." + ENCODED_PAYLOAD);
@@ -475,10 +474,10 @@ public class JwsJoseCookBookTest {
@Test
public void testHMACSignature() throws Exception {
JwsCompactProducer compactProducer = new JwsCompactProducer(PAYLOAD);
- compactProducer.getJoseHeaders().setAlgorithm(AlgorithmUtils.HMAC_SHA_256_ALGO);
- compactProducer.getJoseHeaders().setKeyId(HMAC_KID_VALUE);
+ compactProducer.getJwsHeaders().setSignatureAlgorithm(SignatureAlgorithm.HS256);
+ compactProducer.getJwsHeaders().setKeyId(HMAC_KID_VALUE);
JsonMapObjectReaderWriter reader = new JsonMapObjectReaderWriter();
- assertEquals(reader.toJson(compactProducer.getJoseHeaders().asMap()), HMAC_SIGNATURE_PROTECTED_HEADER_JSON);
+ assertEquals(reader.toJson(compactProducer.getJwsHeaders().asMap()), HMAC_SIGNATURE_PROTECTED_HEADER_JSON);
assertEquals(compactProducer.getUnsignedEncodedJws(),
HMAC_SIGNATURE_PROTECTED_HEADER + "." + ENCODED_PAYLOAD);
JsonWebKeys jwks = readKeySet("cookbookSecretSet.txt");
@@ -493,8 +492,8 @@ public class JwsJoseCookBookTest {
JwsJsonProducer jsonProducer = new JwsJsonProducer(PAYLOAD);
assertEquals(jsonProducer.getPlainPayload(), PAYLOAD);
assertEquals(jsonProducer.getUnsignedEncodedPayload(), ENCODED_PAYLOAD);
- JoseHeaders protectedHeader = new JoseHeaders();
- protectedHeader.setAlgorithm(AlgorithmUtils.HMAC_SHA_256_ALGO);
+ JwsHeaders protectedHeader = new JwsHeaders();
+ protectedHeader.setSignatureAlgorithm(SignatureAlgorithm.HS256);
protectedHeader.setKeyId(HMAC_KID_VALUE);
jsonProducer.signWith(JwsUtils.getSignatureProvider(key, SignatureAlgorithm.HS256), protectedHeader);
assertEquals(jsonProducer.getJwsJsonSignedDocument(), HMAC_JSON_GENERAL_SERIALIZATION);
@@ -510,10 +509,10 @@ public class JwsJoseCookBookTest {
@Test
public void testDetachedHMACSignature() throws Exception {
JwsCompactProducer compactProducer = new JwsCompactProducer(PAYLOAD);
- compactProducer.getJoseHeaders().setAlgorithm(AlgorithmUtils.HMAC_SHA_256_ALGO);
- compactProducer.getJoseHeaders().setKeyId(HMAC_KID_VALUE);
+ compactProducer.getJwsHeaders().setSignatureAlgorithm(SignatureAlgorithm.HS256);
+ compactProducer.getJwsHeaders().setKeyId(HMAC_KID_VALUE);
JsonMapObjectReaderWriter reader = new JsonMapObjectReaderWriter();
- assertEquals(reader.toJson(compactProducer.getJoseHeaders().asMap()), HMAC_SIGNATURE_PROTECTED_HEADER_JSON);
+ assertEquals(reader.toJson(compactProducer.getJwsHeaders().asMap()), HMAC_SIGNATURE_PROTECTED_HEADER_JSON);
assertEquals(compactProducer.getUnsignedEncodedJws(),
HMAC_SIGNATURE_PROTECTED_HEADER + "." + ENCODED_PAYLOAD);
JsonWebKeys jwks = readKeySet("cookbookSecretSet.txt");
@@ -528,8 +527,8 @@ public class JwsJoseCookBookTest {
JwsJsonProducer jsonProducer = new JwsJsonProducer(PAYLOAD);
assertEquals(jsonProducer.getPlainPayload(), PAYLOAD);
assertEquals(jsonProducer.getUnsignedEncodedPayload(), ENCODED_PAYLOAD);
- JoseHeaders protectedHeader = new JoseHeaders();
- protectedHeader.setAlgorithm(AlgorithmUtils.HMAC_SHA_256_ALGO);
+ JwsHeaders protectedHeader = new JwsHeaders();
+ protectedHeader.setSignatureAlgorithm(SignatureAlgorithm.HS256);
protectedHeader.setKeyId(HMAC_KID_VALUE);
jsonProducer.signWith(JwsUtils.getSignatureProvider(key, SignatureAlgorithm.HS256), protectedHeader);
assertEquals(jsonProducer.getJwsJsonSignedDocument(true), HMAC_DETACHED_JSON_GENERAL_SERIALIZATION);
@@ -548,9 +547,9 @@ public class JwsJoseCookBookTest {
JwsJsonProducer jsonProducer = new JwsJsonProducer(PAYLOAD);
assertEquals(jsonProducer.getPlainPayload(), PAYLOAD);
assertEquals(jsonProducer.getUnsignedEncodedPayload(), ENCODED_PAYLOAD);
- JoseHeaders protectedHeader = new JoseHeaders();
- protectedHeader.setAlgorithm(AlgorithmUtils.HMAC_SHA_256_ALGO);
- JoseHeaders unprotectedHeader = new JoseHeaders();
+ JwsHeaders protectedHeader = new JwsHeaders();
+ protectedHeader.setSignatureAlgorithm(SignatureAlgorithm.HS256);
+ JwsHeaders unprotectedHeader = new JwsHeaders();
unprotectedHeader.setKeyId(HMAC_KID_VALUE);
JsonWebKeys jwks = readKeySet("cookbookSecretSet.txt");
List<JsonWebKey> keys = jwks.getKeys();
@@ -576,8 +575,8 @@ public class JwsJoseCookBookTest {
JwsJsonProducer jsonProducer = new JwsJsonProducer(PAYLOAD);
assertEquals(jsonProducer.getPlainPayload(), PAYLOAD);
assertEquals(jsonProducer.getUnsignedEncodedPayload(), ENCODED_PAYLOAD);
- JoseHeaders unprotectedHeader = new JoseHeaders();
- unprotectedHeader.setAlgorithm(AlgorithmUtils.HMAC_SHA_256_ALGO);
+ JwsHeaders unprotectedHeader = new JwsHeaders();
+ unprotectedHeader.setSignatureAlgorithm(SignatureAlgorithm.HS256);
unprotectedHeader.setKeyId(HMAC_KID_VALUE);
JsonWebKeys jwks = readKeySet("cookbookSecretSet.txt");
List<JsonWebKey> keys = jwks.getKeys();
@@ -609,9 +608,9 @@ public class JwsJoseCookBookTest {
JwsJsonProducer jsonProducer = new JwsJsonProducer(PAYLOAD);
assertEquals(jsonProducer.getPlainPayload(), PAYLOAD);
assertEquals(jsonProducer.getUnsignedEncodedPayload(), ENCODED_PAYLOAD);
- JoseHeaders firstSignerProtectedHeader = new JoseHeaders();
- firstSignerProtectedHeader.setAlgorithm(AlgorithmUtils.RS_SHA_256_ALGO);
- JoseHeaders firstSignerUnprotectedHeader = new JoseHeaders();
+ JwsHeaders firstSignerProtectedHeader = new JwsHeaders();
+ firstSignerProtectedHeader.setSignatureAlgorithm(SignatureAlgorithm.RS256);
+ JwsHeaders firstSignerUnprotectedHeader = new JwsHeaders();
firstSignerUnprotectedHeader.setKeyId(RSA_KID_VALUE);
JsonWebKeys jwks = readKeySet("cookbookPrivateSet.txt");
List<JsonWebKey> keys = jwks.getKeys();
@@ -621,20 +620,20 @@ public class JwsJoseCookBookTest {
assertEquals(jsonProducer.getSignatureEntries().get(0).toJson(),
FIRST_SIGNATURE_ENTRY_MULTIPLE_SIGNATURES);
- JoseHeaders secondSignerUnprotectedHeader = new JoseHeaders();
- secondSignerUnprotectedHeader.setAlgorithm(AlgorithmUtils.ES_SHA_512_ALGO);
+ JwsHeaders secondSignerUnprotectedHeader = new JwsHeaders();
+ secondSignerUnprotectedHeader.setSignatureAlgorithm(SignatureAlgorithm.ES512);
secondSignerUnprotectedHeader.setKeyId(ECDSA_KID_VALUE);
JsonWebKey ecKey = keys.get(0);
jsonProducer.signWith(JwsUtils.getSignatureProvider(ecKey, SignatureAlgorithm.ES512),
null, secondSignerUnprotectedHeader);
- assertEquals(new JoseHeadersReaderWriter().toJson(
+ assertEquals(new JsonMapObjectReaderWriter().toJson(
jsonProducer.getSignatureEntries().get(1).getUnprotectedHeader()),
SECOND_SIGNATURE_UNPROTECTED_HEADER_MULTIPLE_SIGNATURES);
assertEquals(jsonProducer.getSignatureEntries().get(1).toJson().length(),
SECOND_SIGNATURE_ENTRY_MULTIPLE_SIGNATURES.length());
- JoseHeaders thirdSignerProtectedHeader = new JoseHeaders();
- thirdSignerProtectedHeader.setAlgorithm(AlgorithmUtils.HMAC_SHA_256_ALGO);
+ JwsHeaders thirdSignerProtectedHeader = new JwsHeaders();
+ thirdSignerProtectedHeader.setSignatureAlgorithm(SignatureAlgorithm.HS256);
thirdSignerProtectedHeader.setKeyId(HMAC_KID_VALUE);
JsonWebKeys secretJwks = readKeySet("cookbookSecretSet.txt");
List<JsonWebKey> secretKeys = secretJwks.getKeys();
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JwePbeHmacAesWrapTest.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JwePbeHmacAesWrapTest.java b/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JwePbeHmacAesWrapTest.java
index 3cca584..56cd65a 100644
--- a/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JwePbeHmacAesWrapTest.java
+++ b/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JwePbeHmacAesWrapTest.java
@@ -20,7 +20,6 @@ package org.apache.cxf.rs.security.jose.jwe;
import java.security.Security;
-import org.apache.cxf.rs.security.jose.jwa.AlgorithmUtils;
import org.apache.cxf.rs.security.jose.jwa.ContentAlgorithm;
import org.apache.cxf.rs.security.jose.jwa.KeyAlgorithm;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
@@ -59,7 +58,7 @@ public class JwePbeHmacAesWrapTest extends Assert {
public void testEncryptDecryptPbesHmacAesWrapAesGcm() throws Exception {
final String specPlainText = "Live long and prosper.";
JweHeaders headers = new JweHeaders();
- headers.setAlgorithm(AlgorithmUtils.PBES2_HS256_A128KW_ALGO);
+ headers.setKeyEncryptionAlgorithm(KeyAlgorithm.PBES2_HS256_A128KW);
headers.setContentEncryptionAlgorithm(ContentAlgorithm.A128GCM);
final String password = "Thus from my lips, by yours, my sin is purged.";
KeyEncryptionProvider keyEncryption =
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactHeaderTest.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactHeaderTest.java b/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactHeaderTest.java
index 4894811..39c6d3c 100644
--- a/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactHeaderTest.java
+++ b/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactHeaderTest.java
@@ -21,7 +21,6 @@ package org.apache.cxf.rs.security.jose.jws;
import java.util.ArrayList;
import java.util.List;
-import org.apache.cxf.rs.security.jose.jwa.AlgorithmUtils;
import org.apache.cxf.rs.security.jose.jwa.SignatureAlgorithm;
import org.junit.Assert;
@@ -166,10 +165,10 @@ public class JwsCompactHeaderTest extends Assert {
String criticalValue2 = "criticalValue2";
String criticalValue3 = "criticalValue3";
JwsCompactProducer producer = new JwsCompactProducer(payload);
- producer.getJoseHeaders().setAlgorithm(AlgorithmUtils.HMAC_SHA_512_ALGO);
+ producer.getJwsHeaders().setSignatureAlgorithm(SignatureAlgorithm.HS512);
List<String> criticalHeader = new ArrayList<String>();
criticalHeader.add(criticalParameter1);
- producer.getJoseHeaders().setCritical(criticalHeader);
+ producer.getJwsHeaders().setCritical(criticalHeader);
producer.signWith(new HmacJwsSignatureProvider(ENCODED_MAC_KEY, SignatureAlgorithm.HS256));
String signedJws = producer.getSignedEncodedJws();
JwsCompactConsumer consumer = new JwsCompactConsumer(signedJws);
@@ -178,11 +177,11 @@ public class JwsCompactHeaderTest extends Assert {
criticalHeader.add(criticalParameter2);
criticalHeader.add(criticalParameter3);
producer = new JwsCompactProducer(payload);
- producer.getJoseHeaders().setAlgorithm(AlgorithmUtils.HMAC_SHA_512_ALGO);
- producer.getJoseHeaders().setCritical(criticalHeader);
- producer.getJoseHeaders().setHeader(criticalParameter1, criticalValue1);
- producer.getJoseHeaders().setHeader(criticalParameter2, criticalValue2);
- producer.getJoseHeaders().setHeader(criticalParameter3, criticalValue3);
+ producer.getJwsHeaders().setSignatureAlgorithm(SignatureAlgorithm.HS512);
+ producer.getJwsHeaders().setCritical(criticalHeader);
+ producer.getJwsHeaders().setHeader(criticalParameter1, criticalValue1);
+ producer.getJwsHeaders().setHeader(criticalParameter2, criticalValue2);
+ producer.getJwsHeaders().setHeader(criticalParameter3, criticalValue3);
producer.signWith(new HmacJwsSignatureProvider(ENCODED_MAC_KEY, SignatureAlgorithm.HS256));
signedJws = producer.getSignedEncodedJws();
consumer = new JwsCompactConsumer(signedJws);
@@ -192,9 +191,9 @@ public class JwsCompactHeaderTest extends Assert {
criticalHeader.add(criticalParameter);
criticalHeader.add(criticalParameter);
producer = new JwsCompactProducer(payload);
- producer.getJoseHeaders().setAlgorithm(AlgorithmUtils.HMAC_SHA_512_ALGO);
- producer.getJoseHeaders().setHeader(criticalParameter, criticalValue);
- producer.getJoseHeaders().setCritical(criticalHeader);
+ producer.getJwsHeaders().setSignatureAlgorithm(SignatureAlgorithm.HS512);
+ producer.getJwsHeaders().setHeader(criticalParameter, criticalValue);
+ producer.getJwsHeaders().setCritical(criticalHeader);
producer.signWith(new HmacJwsSignatureProvider(ENCODED_MAC_KEY, SignatureAlgorithm.HS256));
signedJws = producer.getSignedEncodedJws();
consumer = new JwsCompactConsumer(signedJws);
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java b/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java
index d2367b1..49bacd9 100644
--- a/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java
+++ b/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java
@@ -31,7 +31,6 @@ import java.util.Map;
import org.apache.cxf.rs.security.jose.JoseConstants;
import org.apache.cxf.rs.security.jose.JoseHeaders;
import org.apache.cxf.rs.security.jose.JoseType;
-import org.apache.cxf.rs.security.jose.jwa.AlgorithmUtils;
import org.apache.cxf.rs.security.jose.jwa.SignatureAlgorithm;
import org.apache.cxf.rs.security.jose.jwk.JsonWebKey;
import org.apache.cxf.rs.security.jose.jwk.KeyOperation;
@@ -97,9 +96,9 @@ public class JwsCompactReaderWriterTest extends Assert {
"x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0";
@Test
public void testWriteJwsSignedByMacSpecExample() throws Exception {
- JoseHeaders headers = new JoseHeaders();
+ JwsHeaders headers = new JwsHeaders();
headers.setType(JoseType.JWT);
- headers.setAlgorithm(SignatureAlgorithm.HS256.getJwaName());
+ headers.setSignatureAlgorithm(SignatureAlgorithm.HS256);
JwsCompactProducer jws = initSpecJwtTokenWriter(headers);
jws.signWith(new HmacJwsSignatureProvider(ENCODED_MAC_KEY, SignatureAlgorithm.HS256));
@@ -109,8 +108,8 @@ public class JwsCompactReaderWriterTest extends Assert {
@Test
public void testWriteReadJwsUnsigned() throws Exception {
- JoseHeaders headers = new JoseHeaders(JoseType.JWT);
- headers.setAlgorithm(AlgorithmUtils.PLAIN_TEXT_ALGO);
+ JwsHeaders headers = new JwsHeaders(JoseType.JWT);
+ headers.setSignatureAlgorithm(SignatureAlgorithm.NONE);
JwtClaims claims = new JwtClaims();
claims.setIssuer("https://jwt-idp.example.com");
@@ -136,9 +135,9 @@ public class JwsCompactReaderWriterTest extends Assert {
assertTrue(jws.verifySignatureWith(new HmacJwsSignatureVerifier(ENCODED_MAC_KEY,
SignatureAlgorithm.HS256)));
JwtToken token = jws.getJwtToken();
- JoseHeaders headers = token.getHeaders();
+ JwsHeaders headers = new JwsHeaders(token.getHeaders());
assertEquals(JoseType.JWT, headers.getType());
- assertEquals(SignatureAlgorithm.HS256.getJwaName(), headers.getAlgorithm());
+ assertEquals(SignatureAlgorithm.HS256, headers.getSignatureAlgorithm());
validateSpecClaim(token.getClaims());
}
@@ -184,9 +183,9 @@ public class JwsCompactReaderWriterTest extends Assert {
assertTrue(jws.verifySignatureWith(new HmacJwsSignatureVerifier(ENCODED_MAC_KEY,
SignatureAlgorithm.HS256)));
JwtToken token = jws.getJwtToken();
- JoseHeaders headers = token.getHeaders();
+ JwsHeaders headers = new JwsHeaders(token.getHeaders());
assertEquals(JoseType.JWT, headers.getType());
- assertEquals(SignatureAlgorithm.HS256.getJwaName(), headers.getAlgorithm());
+ assertEquals(SignatureAlgorithm.HS256, headers.getSignatureAlgorithm());
JsonWebKey key = headers.getJsonWebKey();
assertEquals(KeyType.OCTET, key.getKeyType());
@@ -206,8 +205,8 @@ public class JwsCompactReaderWriterTest extends Assert {
@Test
public void testWriteJwsSignedByPrivateKey() throws Exception {
- JoseHeaders headers = new JoseHeaders();
- headers.setAlgorithm(SignatureAlgorithm.RS256.getJwaName());
+ JwsHeaders headers = new JwsHeaders();
+ headers.setSignatureAlgorithm(SignatureAlgorithm.RS256);
JwsCompactProducer jws = initSpecJwtTokenWriter(headers);
PrivateKey key = CryptoUtils.getRSAPrivateKey(RSA_MODULUS_ENCODED, RSA_PRIVATE_EXPONENT_ENCODED);
jws.signWith(new PrivateKeyJwsSignatureProvider(key, SignatureAlgorithm.RS256));
@@ -218,8 +217,8 @@ public class JwsCompactReaderWriterTest extends Assert {
public void testJwsPsSha() throws Exception {
Security.addProvider(new BouncyCastleProvider());
try {
- JoseHeaders outHeaders = new JoseHeaders();
- outHeaders.setAlgorithm(AlgorithmUtils.PS_SHA_256_ALGO);
+ JwsHeaders outHeaders = new JwsHeaders();
+ outHeaders.setSignatureAlgorithm(SignatureAlgorithm.PS256);
JwsCompactProducer producer = initSpecJwtTokenWriter(outHeaders);
PrivateKey privateKey = CryptoUtils.getRSAPrivateKey(RSA_MODULUS_ENCODED, RSA_PRIVATE_EXPONENT_ENCODED);
String signed = producer.signWith(
@@ -229,8 +228,9 @@ public class JwsCompactReaderWriterTest extends Assert {
RSAPublicKey key = CryptoUtils.getRSAPublicKey(RSA_MODULUS_ENCODED, RSA_PUBLIC_EXPONENT_ENCODED);
assertTrue(jws.verifySignatureWith(new PublicKeyJwsSignatureVerifier(key, SignatureAlgorithm.PS256)));
JwtToken token = jws.getJwtToken();
- JoseHeaders inHeaders = token.getHeaders();
- assertEquals(AlgorithmUtils.PS_SHA_256_ALGO, inHeaders.getAlgorithm());
+ JwsHeaders inHeaders = new JwsHeaders(token.getHeaders());
+ assertEquals(SignatureAlgorithm.PS256,
+ inHeaders.getSignatureAlgorithm());
validateSpecClaim(token.getClaims());
} finally {
Security.removeProvider(BouncyCastleProvider.class.getName());
@@ -239,8 +239,8 @@ public class JwsCompactReaderWriterTest extends Assert {
@Test
public void testWriteReadJwsSignedByESPrivateKey() throws Exception {
- JoseHeaders headers = new JoseHeaders();
- headers.setAlgorithm(SignatureAlgorithm.ES256.getJwaName());
+ JwsHeaders headers = new JwsHeaders();
+ headers.setSignatureAlgorithm(SignatureAlgorithm.ES256);
JwsCompactProducer jws = initSpecJwtTokenWriter(headers);
ECPrivateKey privateKey = CryptoUtils.getECPrivateKey(JsonWebKey.EC_CURVE_P256,
EC_PRIVATE_KEY_ENCODED);
@@ -254,8 +254,8 @@ public class JwsCompactReaderWriterTest extends Assert {
assertTrue(jwsConsumer.verifySignatureWith(new EcDsaJwsSignatureVerifier(publicKey,
SignatureAlgorithm.ES256)));
JwtToken token = jwsConsumer.getJwtToken();
- JoseHeaders headersReceived = token.getHeaders();
- assertEquals(SignatureAlgorithm.ES256.getJwaName(), headersReceived.getAlgorithm());
+ JwsHeaders headersReceived = new JwsHeaders(token.getHeaders());
+ assertEquals(SignatureAlgorithm.ES256, headersReceived.getSignatureAlgorithm());
validateSpecClaim(token.getClaims());
}
@@ -265,8 +265,8 @@ public class JwsCompactReaderWriterTest extends Assert {
RSAPublicKey key = CryptoUtils.getRSAPublicKey(RSA_MODULUS_ENCODED, RSA_PUBLIC_EXPONENT_ENCODED);
assertTrue(jws.verifySignatureWith(new PublicKeyJwsSignatureVerifier(key, SignatureAlgorithm.RS256)));
JwtToken token = jws.getJwtToken();
- JoseHeaders headers = token.getHeaders();
- assertEquals(SignatureAlgorithm.RS256.getJwaName(), headers.getAlgorithm());
+ JwsHeaders headers = new JwsHeaders(token.getHeaders());
+ assertEquals(SignatureAlgorithm.RS256, headers.getSignatureAlgorithm());
validateSpecClaim(token.getClaims());
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsJsonProducerTest.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsJsonProducerTest.java b/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsJsonProducerTest.java
index 00b8ed7..10742b2 100644
--- a/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsJsonProducerTest.java
+++ b/rt/rs/security/jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsJsonProducerTest.java
@@ -17,8 +17,6 @@
* under the License.
*/
package org.apache.cxf.rs.security.jose.jws;
-import org.apache.cxf.rs.security.jose.JoseHeaders;
-import org.apache.cxf.rs.security.jose.jwa.AlgorithmUtils;
import org.apache.cxf.rs.security.jose.jwa.SignatureAlgorithm;
import org.junit.Assert;
@@ -72,8 +70,8 @@ public class JwsJsonProducerTest extends Assert {
@Test
public void testSignWithProtectedHeaderOnly() {
JwsJsonProducer producer = new JwsJsonProducer(UNSIGNED_PLAIN_JSON_DOCUMENT);
- JoseHeaders headerEntries = new JoseHeaders();
- headerEntries.setAlgorithm(AlgorithmUtils.HMAC_SHA_256_ALGO);
+ JwsHeaders headerEntries = new JwsHeaders();
+ headerEntries.setSignatureAlgorithm(SignatureAlgorithm.HS256);
producer.signWith(new HmacJwsSignatureProvider(ENCODED_MAC_KEY_1, SignatureAlgorithm.HS256),
headerEntries);
@@ -83,8 +81,8 @@ public class JwsJsonProducerTest extends Assert {
@Test
public void testSignWithProtectedHeaderOnlyFlat() {
JwsJsonProducer producer = new JwsJsonProducer(UNSIGNED_PLAIN_JSON_DOCUMENT, true);
- JoseHeaders headerEntries = new JoseHeaders();
- headerEntries.setAlgorithm(AlgorithmUtils.HMAC_SHA_256_ALGO);
+ JwsHeaders headerEntries = new JwsHeaders();
+ headerEntries.setSignatureAlgorithm(SignatureAlgorithm.HS256);
producer.signWith(new HmacJwsSignatureProvider(ENCODED_MAC_KEY_1, SignatureAlgorithm.HS256),
headerEntries);
@@ -94,8 +92,8 @@ public class JwsJsonProducerTest extends Assert {
@Test
public void testDualSignWithProtectedHeaderOnly() {
JwsJsonProducer producer = new JwsJsonProducer(UNSIGNED_PLAIN_JSON_DOCUMENT);
- JoseHeaders headerEntries = new JoseHeaders();
- headerEntries.setAlgorithm(AlgorithmUtils.HMAC_SHA_256_ALGO);
+ JwsHeaders headerEntries = new JwsHeaders();
+ headerEntries.setSignatureAlgorithm(SignatureAlgorithm.HS256);
producer.signWith(new HmacJwsSignatureProvider(ENCODED_MAC_KEY_1, SignatureAlgorithm.HS256),
headerEntries);
[3/3] cxf git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/cxf
Posted by se...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/cxf
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/4ac83c79
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/4ac83c79
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/4ac83c79
Branch: refs/heads/master
Commit: 4ac83c790de963fb5c4446aa7537a15e01a6120c
Parents: 536293b b532082
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Wed Jul 22 22:38:03 2015 +0300
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Wed Jul 22 22:38:03 2015 +0300
----------------------------------------------------------------------
.../main/java/org/apache/cxf/attachment/AttachmentUtil.java | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
[2/3] cxf git commit: making JoseHeaders abstract and its
setAlgorithm protected with lots of related changes
Posted by se...@apache.org.
making JoseHeaders abstract and its setAlgorithm protected with lots of related changes
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/536293b5
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/536293b5
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/536293b5
Branch: refs/heads/master
Commit: 536293b5eb795c27a4521c6940c56377a4fa78f0
Parents: 8c4dab4
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Wed Jul 22 22:37:32 2015 +0300
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Wed Jul 22 22:37:32 2015 +0300
----------------------------------------------------------------------
.../cxf/rs/security/jose/JoseHeaders.java | 6 +-
.../security/jose/JoseHeadersReaderWriter.java | 38 ----------
.../jose/jaxrs/AbstractJwsReaderProvider.java | 4 +-
.../jose/jaxrs/AbstractJwsWriterProvider.java | 3 +-
.../jose/jaxrs/JwsClientResponseFilter.java | 4 +-
.../jose/jaxrs/JwsContainerRequestFilter.java | 6 +-
.../jose/jaxrs/JwsJsonWriterInterceptor.java | 10 +--
.../jose/jaxrs/JwsWriterInterceptor.java | 6 +-
.../jaxrs/JwtAuthenticationClientFilter.java | 4 +-
.../jose/jaxrs/JwtJwsAuthenticationFilter.java | 4 +-
.../rs/security/jose/jwa/AlgorithmUtils.java | 2 +-
.../security/jose/jwa/SignatureAlgorithm.java | 5 +-
.../jose/jwe/AbstractJweEncryption.java | 8 +--
.../security/jose/jwe/JweCompactConsumer.java | 10 +--
.../security/jose/jwe/JweCompactProducer.java | 4 +-
.../cxf/rs/security/jose/jwe/JweHeaders.java | 4 +-
.../rs/security/jose/jwe/JweJsonProducer.java | 4 +-
.../jose/jwe/JweJwtCompactProducer.java | 7 +-
.../cxf/rs/security/jose/jwe/JweUtils.java | 2 +-
.../PbesHmacAesWrapKeyDecryptionAlgorithm.java | 2 +-
.../jose/jws/AbstractJwsSignatureProvider.java | 11 ++-
.../jose/jws/HmacJwsSignatureProvider.java | 7 +-
.../jose/jws/HmacJwsSignatureVerifier.java | 9 ++-
.../security/jose/jws/JwsCompactConsumer.java | 20 +++---
.../security/jose/jws/JwsCompactProducer.java | 25 ++++---
.../rs/security/jose/jws/JwsJsonConsumer.java | 9 ++-
.../rs/security/jose/jws/JwsJsonProducer.java | 18 ++---
.../jose/jws/JwsJsonSignatureEntry.java | 12 ++--
.../jose/jws/JwsJwtCompactConsumer.java | 10 ++-
.../jose/jws/JwsJwtCompactProducer.java | 3 +-
.../cxf/rs/security/jose/jws/JwsUtils.java | 19 ++---
.../jose/jws/NoneJwsSignatureProvider.java | 2 +-
.../jose/jws/NoneJwsSignatureVerifier.java | 5 +-
.../jws/PrivateKeyJwsSignatureProvider.java | 6 +-
.../jose/jws/PublicKeyJwsSignatureVerifier.java | 6 +-
.../cxf/rs/security/jose/jwt/JwtTokenJson.java | 37 ----------
.../security/jose/jwt/JwtTokenReaderWriter.java | 21 +-----
.../jose/cookbook/JwsJoseCookBookTest.java | 75 ++++++++++----------
.../jose/jwe/JwePbeHmacAesWrapTest.java | 3 +-
.../security/jose/jws/JwsCompactHeaderTest.java | 21 +++---
.../jose/jws/JwsCompactReaderWriterTest.java | 42 +++++------
.../security/jose/jws/JwsJsonProducerTest.java | 14 ++--
42 files changed, 209 insertions(+), 299 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/JoseHeaders.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/JoseHeaders.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/JoseHeaders.java
index 66c7863..df7867d 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/JoseHeaders.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/JoseHeaders.java
@@ -26,7 +26,7 @@ import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.jaxrs.provider.json.JsonMapObject;
import org.apache.cxf.rs.security.jose.jwk.JsonWebKey;
-public class JoseHeaders extends JsonMapObject {
+public abstract class JoseHeaders extends JsonMapObject {
public JoseHeaders() {
}
@@ -61,11 +61,11 @@ public class JoseHeaders extends JsonMapObject {
return (String)getHeader(JoseConstants.HEADER_CONTENT_TYPE);
}
- public void setAlgorithm(String algo) {
+ protected void setAlgorithm(String algo) {
setHeader(JoseConstants.HEADER_ALGORITHM, algo);
}
- public String getAlgorithm() {
+ protected String getAlgorithm() {
Object prop = getHeader(JoseConstants.HEADER_ALGORITHM);
return prop == null ? null : prop.toString();
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/JoseHeadersReaderWriter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/JoseHeadersReaderWriter.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/JoseHeadersReaderWriter.java
deleted file mode 100644
index 37a0aa5..0000000
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/JoseHeadersReaderWriter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.rs.security.jose;
-
-import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
-
-
-
-
-
-public class JoseHeadersReaderWriter extends JsonMapObjectReaderWriter {
- public String headersToJson(JoseHeaders headers) {
- return toJson(headers);
- }
-
- public JoseHeaders fromJsonHeaders(String headersJson) {
- JoseHeaders headers = new JoseHeaders();
- fromJson(headers, headersJson);
- return headers;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsReaderProvider.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsReaderProvider.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsReaderProvider.java
index 90d6c74..0e8b0d0 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsReaderProvider.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsReaderProvider.java
@@ -18,7 +18,7 @@
*/
package org.apache.cxf.rs.security.jose.jaxrs;
-import org.apache.cxf.rs.security.jose.JoseHeaders;
+import org.apache.cxf.rs.security.jose.jws.JwsHeaders;
import org.apache.cxf.rs.security.jose.jws.JwsSignatureVerifier;
import org.apache.cxf.rs.security.jose.jws.JwsUtils;
@@ -30,7 +30,7 @@ public class AbstractJwsReaderProvider {
this.sigVerifier = signatureVerifier;
}
- protected JwsSignatureVerifier getInitializedSigVerifier(JoseHeaders headers) {
+ protected JwsSignatureVerifier getInitializedSigVerifier(JwsHeaders headers) {
if (sigVerifier != null) {
return sigVerifier;
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsWriterProvider.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsWriterProvider.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsWriterProvider.java
index 02f5390..33ec0b0 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsWriterProvider.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsWriterProvider.java
@@ -27,6 +27,7 @@ import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.rs.security.jose.JoseHeaders;
import org.apache.cxf.rs.security.jose.JoseUtils;
import org.apache.cxf.rs.security.jose.jws.JwsCompactProducer;
+import org.apache.cxf.rs.security.jose.jws.JwsHeaders;
import org.apache.cxf.rs.security.jose.jws.JwsSignatureProvider;
import org.apache.cxf.rs.security.jose.jws.JwsUtils;
@@ -37,7 +38,7 @@ public class AbstractJwsWriterProvider {
this.sigProvider = signatureProvider;
}
- protected JwsSignatureProvider getInitializedSigProvider(JoseHeaders headers) {
+ protected JwsSignatureProvider getInitializedSigProvider(JwsHeaders headers) {
setRequestContextProperty(headers);
if (sigProvider != null) {
return sigProvider;
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsClientResponseFilter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsClientResponseFilter.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsClientResponseFilter.java
index e70bead..8b811ec 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsClientResponseFilter.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsClientResponseFilter.java
@@ -37,14 +37,14 @@ public class JwsClientResponseFilter extends AbstractJwsReaderProvider implement
@Override
public void filter(ClientRequestContext req, ClientResponseContext res) throws IOException {
JwsCompactConsumer p = new JwsCompactConsumer(IOUtils.readStringFromStream(res.getEntityStream()));
- JwsSignatureVerifier theSigVerifier = getInitializedSigVerifier(p.getJoseHeaders());
+ JwsSignatureVerifier theSigVerifier = getInitializedSigVerifier(p.getJwsHeaders());
if (!p.verifySignatureWith(theSigVerifier)) {
throw new JwsException(JwsException.Error.INVALID_SIGNATURE);
}
byte[] bytes = p.getDecodedJwsPayloadBytes();
res.setEntityStream(new ByteArrayInputStream(bytes));
res.getHeaders().putSingle("Content-Length", Integer.toString(bytes.length));
- String ct = JoseUtils.checkContentType(p.getJoseHeaders().getContentType(), getDefaultMediaType());
+ String ct = JoseUtils.checkContentType(p.getJwsHeaders().getContentType(), getDefaultMediaType());
if (ct != null) {
res.getHeaders().putSingle("Content-Type", ct);
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsContainerRequestFilter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsContainerRequestFilter.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsContainerRequestFilter.java
index 6eb15e4..8a3a069 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsContainerRequestFilter.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsContainerRequestFilter.java
@@ -42,17 +42,17 @@ public class JwsContainerRequestFilter extends AbstractJwsReaderProvider impleme
return;
}
JwsCompactConsumer p = new JwsCompactConsumer(IOUtils.readStringFromStream(context.getEntityStream()));
- JwsSignatureVerifier theSigVerifier = getInitializedSigVerifier(p.getJoseHeaders());
+ JwsSignatureVerifier theSigVerifier = getInitializedSigVerifier(p.getJwsHeaders());
if (!p.verifySignatureWith(theSigVerifier)) {
context.abortWith(JAXRSUtils.toResponse(400));
return;
}
- JoseUtils.validateRequestContextProperty(p.getJoseHeaders());
+ JoseUtils.validateRequestContextProperty(p.getJwsHeaders());
byte[] bytes = p.getDecodedJwsPayloadBytes();
context.setEntityStream(new ByteArrayInputStream(bytes));
context.getHeaders().putSingle("Content-Length", Integer.toString(bytes.length));
- String ct = JoseUtils.checkContentType(p.getJoseHeaders().getContentType(), getDefaultMediaType());
+ String ct = JoseUtils.checkContentType(p.getJwsHeaders().getContentType(), getDefaultMediaType());
if (ct != null) {
context.getHeaders().putSingle("Content-Type", ct);
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsJsonWriterInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsJsonWriterInterceptor.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsJsonWriterInterceptor.java
index 7f7435d..722ae59 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsJsonWriterInterceptor.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsJsonWriterInterceptor.java
@@ -33,10 +33,10 @@ import org.apache.cxf.common.util.Base64UrlOutputStream;
import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.io.CachedOutputStream;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
import org.apache.cxf.jaxrs.utils.JAXRSUtils;
import org.apache.cxf.rs.security.jose.JoseConstants;
import org.apache.cxf.rs.security.jose.JoseHeaders;
-import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
import org.apache.cxf.rs.security.jose.jws.JwsHeaders;
import org.apache.cxf.rs.security.jose.jws.JwsJsonOutputStream;
import org.apache.cxf.rs.security.jose.jws.JwsJsonProducer;
@@ -45,7 +45,7 @@ import org.apache.cxf.rs.security.jose.jws.JwsSignatureProvider;
@Priority(Priorities.JWS_WRITE_PRIORITY)
public class JwsJsonWriterInterceptor extends AbstractJwsJsonWriterProvider implements WriterInterceptor {
- private JoseHeadersReaderWriter writer = new JoseHeadersReaderWriter();
+ private JsonMapObjectReaderWriter writer = new JsonMapObjectReaderWriter();
private boolean contentTypeRequired = true;
private boolean useJwsOutputStream;
@Override
@@ -82,7 +82,7 @@ public class JwsJsonWriterInterceptor extends AbstractJwsJsonWriterProvider impl
ctx.proceed();
JwsJsonProducer p = new JwsJsonProducer(new String(cos.getBytes(), "UTF-8"));
for (JwsSignatureProvider signer : sigProviders) {
- JoseHeaders protectedHeader = prepareProtectedHeader(ctx, signer);
+ JwsHeaders protectedHeader = prepareProtectedHeader(ctx, signer);
p.signWith(signer, protectedHeader, null);
}
ctx.setMediaType(JAXRSUtils.toMediaType(JoseConstants.MEDIA_TYPE_JOSE_JSON));
@@ -92,9 +92,9 @@ public class JwsJsonWriterInterceptor extends AbstractJwsJsonWriterProvider impl
}
private JwsHeaders prepareProtectedHeader(WriterInterceptorContext ctx,
- JwsSignatureProvider signer) {
+ JwsSignatureProvider signer) {
JwsHeaders headers = new JwsHeaders();
- headers.setAlgorithm(signer.getAlgorithm().getJwaName());
+ headers.setSignatureAlgorithm(signer.getAlgorithm());
setContentTypeIfNeeded(headers, ctx);
return headers;
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsWriterInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsWriterInterceptor.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsWriterInterceptor.java
index 52a09d1..5deaceb 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsWriterInterceptor.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsWriterInterceptor.java
@@ -31,10 +31,10 @@ import org.apache.cxf.common.util.Base64UrlOutputStream;
import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.io.CachedOutputStream;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
import org.apache.cxf.jaxrs.utils.JAXRSUtils;
import org.apache.cxf.rs.security.jose.JoseConstants;
import org.apache.cxf.rs.security.jose.JoseHeaders;
-import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
import org.apache.cxf.rs.security.jose.jws.JwsCompactProducer;
import org.apache.cxf.rs.security.jose.jws.JwsHeaders;
import org.apache.cxf.rs.security.jose.jws.JwsOutputStream;
@@ -45,7 +45,7 @@ import org.apache.cxf.rs.security.jose.jws.JwsSignatureProvider;
public class JwsWriterInterceptor extends AbstractJwsWriterProvider implements WriterInterceptor {
private boolean contentTypeRequired = true;
private boolean useJwsOutputStream;
- private JoseHeadersReaderWriter writer = new JoseHeadersReaderWriter();
+ private JsonMapObjectReaderWriter writer = new JsonMapObjectReaderWriter();
@Override
public void aroundWriteTo(WriterInterceptorContext ctx) throws IOException, WebApplicationException {
if (ctx.getEntity() == null) {
@@ -59,7 +59,7 @@ public class JwsWriterInterceptor extends AbstractJwsWriterProvider implements W
if (useJwsOutputStream) {
JwsSignature jwsSignature = sigProvider.createJwsSignature(headers);
JwsOutputStream jwsStream = new JwsOutputStream(actualOs, jwsSignature);
- byte[] headerBytes = StringUtils.toBytesUTF8(writer.headersToJson(headers));
+ byte[] headerBytes = StringUtils.toBytesUTF8(writer.toJson(headers));
Base64UrlUtility.encodeAndStream(headerBytes, 0, headerBytes.length, jwsStream);
jwsStream.write(new byte[]{'.'});
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwtAuthenticationClientFilter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwtAuthenticationClientFilter.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwtAuthenticationClientFilter.java
index 167d763..ecfe44f 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwtAuthenticationClientFilter.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwtAuthenticationClientFilter.java
@@ -30,8 +30,8 @@ import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.configuration.security.AuthorizationPolicy;
import org.apache.cxf.jaxrs.utils.JAXRSUtils;
import org.apache.cxf.rs.security.jose.JoseException;
-import org.apache.cxf.rs.security.jose.JoseHeaders;
import org.apache.cxf.rs.security.jose.JoseUtils;
+import org.apache.cxf.rs.security.jose.jwe.JweHeaders;
import org.apache.cxf.rs.security.jose.jwt.AbstractJoseJwtProducer;
import org.apache.cxf.rs.security.jose.jwt.JwtClaims;
import org.apache.cxf.rs.security.jose.jwt.JwtToken;
@@ -53,7 +53,7 @@ public class JwtAuthenticationClientFilter extends AbstractJoseJwtProducer
claims.setSubject(ap.getUserName());
claims.setClaim("password", ap.getPassword());
claims.setIssuedAt(System.currentTimeMillis() / 1000);
- jwt = new JwtToken(new JoseHeaders(), claims);
+ jwt = new JwtToken(new JweHeaders(), claims);
jweRequired = true;
}
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwtJwsAuthenticationFilter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwtJwsAuthenticationFilter.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwtJwsAuthenticationFilter.java
index 63b18a8..e495104 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwtJwsAuthenticationFilter.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwtJwsAuthenticationFilter.java
@@ -49,7 +49,7 @@ public class JwtJwsAuthenticationFilter extends AbstractJwsReaderProvider implem
}
JwsJwtCompactConsumer p = new JwsJwtCompactConsumer(schemeData[1]);
- JwsSignatureVerifier theSigVerifier = getInitializedSigVerifier(p.getJoseHeaders());
+ JwsSignatureVerifier theSigVerifier = getInitializedSigVerifier(p.getJwsHeaders());
if (!p.verifySignatureWith(theSigVerifier)) {
context.abortWith(JAXRSUtils.toResponse(400));
return;
@@ -61,7 +61,7 @@ public class JwtJwsAuthenticationFilter extends AbstractJwsReaderProvider implem
}
protected void setRequestContextProperty(Message m, JwsCompactConsumer c) {
- Object headerContext = c.getJoseHeaders().getHeader(JWS_CONTEXT_PROPERTY);
+ Object headerContext = c.getJwsHeaders().getHeader(JWS_CONTEXT_PROPERTY);
if (headerContext != null) {
m.put(JWS_CONTEXT_PROPERTY, headerContext);
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwa/AlgorithmUtils.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwa/AlgorithmUtils.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwa/AlgorithmUtils.java
index f505caa..76854ca 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwa/AlgorithmUtils.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwa/AlgorithmUtils.java
@@ -79,7 +79,7 @@ public final class AlgorithmUtils {
public static final String ES_SHA_256_ALGO = "ES256";
public static final String ES_SHA_384_ALGO = "ES384";
public static final String ES_SHA_512_ALGO = "ES512";
- public static final String PLAIN_TEXT_ALGO = "none";
+ public static final String NONE_TEXT_ALGO = "none";
// Java
public static final String HMAC_SHA_256_JAVA = "HmacSHA256";
public static final String HMAC_SHA_384_JAVA = "HmacSHA384";
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwa/SignatureAlgorithm.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwa/SignatureAlgorithm.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwa/SignatureAlgorithm.java
index 1e88df0..fe6418a 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwa/SignatureAlgorithm.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwa/SignatureAlgorithm.java
@@ -39,7 +39,7 @@ public enum SignatureAlgorithm {
ES384(AlgorithmUtils.ES_SHA_384_ALGO, AlgorithmUtils.ES_SHA_384_JAVA, 384),
ES512(AlgorithmUtils.ES_SHA_512_ALGO, AlgorithmUtils.ES_SHA_512_JAVA, 512),
- PLAIN(AlgorithmUtils.PLAIN_TEXT_ALGO, null, -1);
+ NONE(AlgorithmUtils.NONE_TEXT_ALGO, null, -1);
private final String jwaName;
@@ -72,6 +72,9 @@ public enum SignatureAlgorithm {
if (algo == null) {
return null;
}
+ if (AlgorithmUtils.NONE_TEXT_ALGO.equals(algo)) {
+ return NONE;
+ }
return SignatureAlgorithm.valueOf(algo.replace('-', '_')
.replace('+', '_'));
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/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 20b8eae..3edaeee 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
@@ -27,8 +27,8 @@ import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
import org.apache.cxf.rs.security.jose.JoseConstants;
-import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
import org.apache.cxf.rs.security.jose.jwa.AlgorithmUtils;
import org.apache.cxf.rs.security.jose.jwa.ContentAlgorithm;
import org.apache.cxf.rs.security.jose.jwa.KeyAlgorithm;
@@ -40,7 +40,7 @@ public abstract class AbstractJweEncryption implements JweEncryptionProvider {
protected static final int DEFAULT_AUTH_TAG_LENGTH = 128;
private ContentEncryptionProvider contentEncryptionAlgo;
private KeyEncryptionProvider keyEncryptionAlgo;
- private JoseHeadersReaderWriter writer = new JoseHeadersReaderWriter();
+ private JsonMapObjectReaderWriter writer = new JsonMapObjectReaderWriter();
protected AbstractJweEncryption(ContentEncryptionProvider contentEncryptionAlgo,
KeyEncryptionProvider keyEncryptionAlgo) {
this.keyEncryptionAlgo = keyEncryptionAlgo;
@@ -150,7 +150,7 @@ public abstract class AbstractJweEncryption implements JweEncryptionProvider {
public ContentAlgorithm getContentAlgorithm() {
return getContentEncryptionAlgorithm().getAlgorithm();
}
- protected JoseHeadersReaderWriter getJwtHeadersWriter() {
+ protected JsonMapObjectReaderWriter getJwtHeadersWriter() {
return writer;
}
@@ -209,7 +209,7 @@ public abstract class AbstractJweEncryption implements JweEncryptionProvider {
getEncryptedContentEncryptionKey(theHeaders, theCek);
- String protectedHeadersJson = writer.headersToJson(protectedHeaders);
+ String protectedHeadersJson = writer.toJson(protectedHeaders);
byte[] additionalEncryptionParam = getAAD(protectedHeadersJson,
jweInput == null ? null : jweInput.getAad());
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactConsumer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactConsumer.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactConsumer.java
index cd34c7c..9371726 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactConsumer.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactConsumer.java
@@ -25,9 +25,9 @@ import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.Base64Exception;
import org.apache.cxf.common.util.Base64UrlUtility;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObject;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
import org.apache.cxf.rs.security.jose.JoseException;
-import org.apache.cxf.rs.security.jose.JoseHeaders;
-import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
import org.apache.cxf.rs.security.jose.JoseUtils;
@@ -46,13 +46,13 @@ public class JweCompactConsumer {
byte[] initVector = Base64UrlUtility.decode(parts[2]);
byte[] encryptedContent = Base64UrlUtility.decode(parts[3]);
byte[] authTag = Base64UrlUtility.decode(parts[4]);
- JoseHeadersReaderWriter reader = new JoseHeadersReaderWriter();
- JoseHeaders joseHeaders = reader.fromJsonHeaders(headersJson);
+ JsonMapObjectReaderWriter reader = new JsonMapObjectReaderWriter();
+ JsonMapObject joseHeaders = reader.fromJsonToJsonObject(headersJson);
if (joseHeaders.getUpdateCount() != null) {
LOG.warning("Duplicate headers have been detected");
throw new JweException(JweException.Error.INVALID_COMPACT_JWE);
}
- JweHeaders jweHeaders = new JweHeaders(joseHeaders);
+ JweHeaders jweHeaders = new JweHeaders(joseHeaders.asMap());
jweDecryptionInput = new JweDecryptionInput(encryptedCEK,
initVector,
encryptedContent,
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactProducer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactProducer.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactProducer.java
index a261d54..53e7ec3 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactProducer.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactProducer.java
@@ -24,7 +24,7 @@ import java.io.OutputStream;
import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.common.util.StringUtils;
-import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
public class JweCompactProducer {
@@ -85,7 +85,7 @@ public class JweCompactProducer {
cipherInitVector);
}
private static String getHeadersJson(JweHeaders headers) {
- return new JoseHeadersReaderWriter().headersToJson(headers);
+ return new JsonMapObjectReaderWriter().toJson(headers);
}
public static StringBuilder startJweContent(StringBuilder sb,
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/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 b287df5..e276ce2 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
@@ -23,9 +23,9 @@ import java.util.Map;
import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.common.util.StringUtils;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
import org.apache.cxf.rs.security.jose.JoseConstants;
import org.apache.cxf.rs.security.jose.JoseHeaders;
-import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
import org.apache.cxf.rs.security.jose.JoseType;
import org.apache.cxf.rs.security.jose.jwa.ContentAlgorithm;
import org.apache.cxf.rs.security.jose.jwa.KeyAlgorithm;
@@ -100,7 +100,7 @@ public class JweHeaders extends JoseHeaders {
return (JoseHeaders)super.setHeader(name, value);
}
public byte[] toCipherAdditionalAuthData() {
- return toCipherAdditionalAuthData(new JoseHeadersReaderWriter().headersToJson(this));
+ return toCipherAdditionalAuthData(new JsonMapObjectReaderWriter().toJson(this));
}
public static byte[] toCipherAdditionalAuthData(String headersJson) {
byte[] headerBytes = StringUtils.toBytesUTF8(headersJson);
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweJsonProducer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweJsonProducer.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweJsonProducer.java
index 4fbf737..ba5365e 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweJsonProducer.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweJsonProducer.java
@@ -29,12 +29,12 @@ import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.Base64UrlUtility;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
import org.apache.cxf.rs.security.jose.JoseConstants;
-import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
public class JweJsonProducer {
protected static final Logger LOG = LogUtils.getL7dLogger(JweJsonProducer.class);
- private JoseHeadersReaderWriter writer = new JoseHeadersReaderWriter();
+ private JsonMapObjectReaderWriter writer = new JsonMapObjectReaderWriter();
private JweHeaders protectedHeader;
private JweHeaders unprotectedHeader;
private byte[] content;
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweJwtCompactProducer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweJwtCompactProducer.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweJwtCompactProducer.java
index ad4ad08..98702b4 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweJwtCompactProducer.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweJwtCompactProducer.java
@@ -22,7 +22,6 @@ import java.security.interfaces.RSAPublicKey;
import javax.crypto.SecretKey;
import org.apache.cxf.common.util.StringUtils;
-import org.apache.cxf.rs.security.jose.JoseHeaders;
import org.apache.cxf.rs.security.jose.jwk.JsonWebKey;
import org.apache.cxf.rs.security.jose.jwt.JwtClaims;
import org.apache.cxf.rs.security.jose.jwt.JwtToken;
@@ -33,12 +32,12 @@ public class JweJwtCompactProducer {
private JweHeaders headers;
private String claimsJson;
public JweJwtCompactProducer(JwtToken token) {
- this(token.getHeaders(), token.getClaims());
+ this(new JweHeaders(token.getHeaders()), token.getClaims());
}
public JweJwtCompactProducer(JwtClaims claims) {
- this(new JoseHeaders(), claims);
+ this(new JweHeaders(), claims);
}
- public JweJwtCompactProducer(JoseHeaders joseHeaders, JwtClaims claims) {
+ public JweJwtCompactProducer(JweHeaders joseHeaders, JwtClaims claims) {
headers = new JweHeaders(joseHeaders);
claimsJson = JwtUtils.claimsToJson(claims);
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweUtils.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweUtils.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweUtils.java
index 065091a..5c79dbf 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweUtils.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweUtils.java
@@ -541,7 +541,7 @@ public final class JweUtils {
String compression) {
JweHeaders headers = new JweHeaders();
if (keyEncryptionAlgo != null) {
- headers.setAlgorithm(keyEncryptionAlgo);
+ headers.setKeyEncryptionAlgorithm(KeyAlgorithm.getAlgorithm(keyEncryptionAlgo));
}
headers.setContentEncryptionAlgorithm(ContentAlgorithm.getAlgorithm(contentEncryptionAlgo));
if (compression != null) {
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyDecryptionAlgorithm.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyDecryptionAlgorithm.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyDecryptionAlgorithm.java
index 80fd2db..9770ae9 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyDecryptionAlgorithm.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyDecryptionAlgorithm.java
@@ -51,7 +51,7 @@ public class PbesHmacAesWrapKeyDecryptionAlgorithm implements KeyDecryptionAlgor
JweHeaders jweHeaders = jweDecryptionInput.getJweHeaders();
byte[] saltInput = getDecodedBytes(jweHeaders.getHeader("p2s"));
int pbesCount = jweHeaders.getIntegerHeader("p2c");
- String keyAlgoJwt = jweHeaders.getAlgorithm();
+ String keyAlgoJwt = jweHeaders.getKeyEncryptionAlgorithm().getJwaName();
int keySize = PbesHmacAesWrapKeyEncryptionAlgorithm.getKeySize(keyAlgoJwt);
byte[] derivedKey = PbesHmacAesWrapKeyEncryptionAlgorithm
.createDerivedKey(keyAlgoJwt, keySize, password, saltInput, pbesCount);
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/AbstractJwsSignatureProvider.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/AbstractJwsSignatureProvider.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/AbstractJwsSignatureProvider.java
index 812c037..df400fa 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/AbstractJwsSignatureProvider.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/AbstractJwsSignatureProvider.java
@@ -21,7 +21,6 @@ package org.apache.cxf.rs.security.jose.jws;
import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.rs.security.jose.JoseHeaders;
import org.apache.cxf.rs.security.jose.jwa.SignatureAlgorithm;
@@ -37,12 +36,12 @@ public abstract class AbstractJwsSignatureProvider implements JwsSignatureProvid
if (headers == null) {
headers = new JwsHeaders();
}
- String algo = headers.getAlgorithm();
- if (algo != null) {
- checkAlgorithm(algo);
+ SignatureAlgorithm sigAlgo = headers.getSignatureAlgorithm();
+ if (sigAlgo != null) {
+ checkAlgorithm(sigAlgo.getJwaName());
} else {
checkAlgorithm(algorithm.getJwaName());
- headers.setAlgorithm(algorithm.getJwaName());
+ headers.setSignatureAlgorithm(algorithm);
}
return headers;
}
@@ -61,7 +60,7 @@ public abstract class AbstractJwsSignatureProvider implements JwsSignatureProvid
return doCreateJwsSignature(prepareHeaders(headers));
}
- protected abstract JwsSignature doCreateJwsSignature(JoseHeaders headers);
+ protected abstract JwsSignature doCreateJwsSignature(JwsHeaders headers);
protected void checkAlgorithm(String algo) {
if (algo == null) {
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureProvider.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureProvider.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureProvider.java
index 0c88113..ce1db97 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureProvider.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureProvider.java
@@ -24,7 +24,6 @@ import javax.crypto.Mac;
import org.apache.cxf.common.util.Base64Exception;
import org.apache.cxf.common.util.Base64UrlUtility;
-import org.apache.cxf.rs.security.jose.JoseHeaders;
import org.apache.cxf.rs.security.jose.jwa.AlgorithmUtils;
import org.apache.cxf.rs.security.jose.jwa.SignatureAlgorithm;
import org.apache.cxf.rt.security.crypto.HmacUtils;
@@ -51,8 +50,10 @@ public class HmacJwsSignatureProvider extends AbstractJwsSignatureProvider {
}
}
- protected JwsSignature doCreateJwsSignature(JoseHeaders headers) {
- final Mac mac = HmacUtils.getInitializedMac(key, AlgorithmUtils.toJavaName(headers.getAlgorithm()),
+ protected JwsSignature doCreateJwsSignature(JwsHeaders headers) {
+ final String sigAlgo = headers.getSignatureAlgorithm().getJwaName();
+ final Mac mac = HmacUtils.getInitializedMac(key,
+ AlgorithmUtils.toJavaName(sigAlgo),
hmacSpec);
return new JwsSignature() {
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureVerifier.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureVerifier.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureVerifier.java
index e0a4c68..69643da 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureVerifier.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureVerifier.java
@@ -57,17 +57,20 @@ public class HmacJwsSignatureVerifier implements JwsSignatureVerifier {
}
private byte[] computeMac(JwsHeaders headers, String text) {
+ final String sigAlgo = checkAlgorithm(headers.getSignatureAlgorithm());
return HmacUtils.computeHmac(key,
- AlgorithmUtils.toJavaName(checkAlgorithm(headers.getAlgorithm())),
+ AlgorithmUtils.toJavaName(sigAlgo),
hmacSpec,
text);
}
- protected String checkAlgorithm(String algo) {
- if (algo == null) {
+ protected String checkAlgorithm(SignatureAlgorithm sigAlgo) {
+
+ if (sigAlgo == null) {
LOG.warning("Signature algorithm is not set");
throw new JwsException(JwsException.Error.ALGORITHM_NOT_SET);
}
+ String algo = sigAlgo.getJwaName();
if (!AlgorithmUtils.isHmacSign(algo)
|| !algo.equals(supportedAlgo.getJwaName())) {
LOG.warning("Invalid signature algorithm: " + algo);
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactConsumer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactConsumer.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactConsumer.java
index 2f860e4..4c721c5 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactConsumer.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactConsumer.java
@@ -24,15 +24,15 @@ import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.StringUtils;
-import org.apache.cxf.rs.security.jose.JoseHeaders;
-import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObject;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
import org.apache.cxf.rs.security.jose.JoseUtils;
import org.apache.cxf.rs.security.jose.jwa.SignatureAlgorithm;
import org.apache.cxf.rs.security.jose.jwk.JsonWebKey;
public class JwsCompactConsumer {
protected static final Logger LOG = LogUtils.getL7dLogger(JwsCompactConsumer.class);
- private JoseHeadersReaderWriter reader = new JoseHeadersReaderWriter();
+ private JsonMapObjectReaderWriter reader = new JsonMapObjectReaderWriter();
private String encodedSequence;
private String encodedSignature;
private String headersJson;
@@ -43,7 +43,7 @@ public class JwsCompactConsumer {
public JwsCompactConsumer(String encodedJws, String encodedDetachedPayload) {
this(encodedJws, encodedDetachedPayload, null);
}
- protected JwsCompactConsumer(String encodedJws, String encodedDetachedPayload, JoseHeadersReaderWriter r) {
+ protected JwsCompactConsumer(String encodedJws, String encodedDetachedPayload, JsonMapObjectReaderWriter r) {
if (r != null) {
this.reader = r;
}
@@ -88,17 +88,17 @@ public class JwsCompactConsumer {
public byte[] getDecodedSignature() {
return encodedSignature.isEmpty() ? new byte[]{} : JoseUtils.decode(encodedSignature);
}
- public JwsHeaders getJoseHeaders() {
- JoseHeaders joseHeaders = reader.fromJsonHeaders(headersJson);
+ public JwsHeaders getJwsHeaders() {
+ JsonMapObject joseHeaders = reader.fromJsonToJsonObject(headersJson);
if (joseHeaders.getUpdateCount() != null) {
LOG.warning("Duplicate headers have been detected");
throw new JwsException(JwsException.Error.INVALID_COMPACT_JWS);
}
- return new JwsHeaders(joseHeaders);
+ return new JwsHeaders(joseHeaders.asMap());
}
public boolean verifySignatureWith(JwsSignatureVerifier validator) {
try {
- if (validator.verify(getJoseHeaders(), getUnsignedEncodedSequence(), getDecodedSignature())) {
+ if (validator.verify(getJwsHeaders(), getUnsignedEncodedSequence(), getDecodedSignature())) {
return true;
}
} catch (JwsException ex) {
@@ -123,9 +123,9 @@ public class JwsCompactConsumer {
return verifySignatureWith(JwsUtils.getHmacSignatureVerifier(key, algo));
}
public boolean validateCriticalHeaders() {
- return JwsUtils.validateCriticalHeaders(getJoseHeaders());
+ return JwsUtils.validateCriticalHeaders(getJwsHeaders());
}
- protected JoseHeadersReaderWriter getReader() {
+ protected JsonMapObjectReaderWriter getReader() {
return reader;
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
index 6a549aa..20213ea 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
@@ -22,13 +22,12 @@ import java.security.PrivateKey;
import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.common.util.StringUtils;
-import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
-import org.apache.cxf.rs.security.jose.jwa.AlgorithmUtils;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
import org.apache.cxf.rs.security.jose.jwa.SignatureAlgorithm;
import org.apache.cxf.rs.security.jose.jwk.JsonWebKey;
public class JwsCompactProducer {
- private JoseHeadersReaderWriter writer = new JoseHeadersReaderWriter();
+ private JsonMapObjectReaderWriter writer = new JsonMapObjectReaderWriter();
private JwsHeaders headers;
private String plainJwsPayload;
private String signature;
@@ -38,14 +37,14 @@ public class JwsCompactProducer {
public JwsCompactProducer(JwsHeaders headers, String plainJwsPayload) {
this(headers, null, plainJwsPayload);
}
- protected JwsCompactProducer(JwsHeaders headers, JoseHeadersReaderWriter w, String plainJwsPayload) {
+ protected JwsCompactProducer(JwsHeaders headers, JsonMapObjectReaderWriter w, String plainJwsPayload) {
this.headers = headers;
if (w != null) {
this.writer = w;
}
this.plainJwsPayload = plainJwsPayload;
}
- public JwsHeaders getJoseHeaders() {
+ public JwsHeaders getJwsHeaders() {
if (headers == null) {
headers = new JwsHeaders();
}
@@ -56,7 +55,7 @@ public class JwsCompactProducer {
}
private String getUnsignedEncodedJws(boolean detached) {
checkAlgorithm();
- return Base64UrlUtility.encode(writer.headersToJson(getJoseHeaders()))
+ return Base64UrlUtility.encode(writer.toJson(getJwsHeaders()))
+ "."
+ (detached ? "" : Base64UrlUtility.encode(plainJwsPayload));
}
@@ -76,21 +75,21 @@ public class JwsCompactProducer {
}
public String signWith(JsonWebKey jwk) {
return signWith(JwsUtils.getSignatureProvider(jwk,
- SignatureAlgorithm.getAlgorithm(headers.getAlgorithm())));
+ headers.getSignatureAlgorithm()));
}
public String signWith(PrivateKey key) {
return signWith(JwsUtils.getPrivateKeySignatureProvider(key,
- SignatureAlgorithm.getAlgorithm(headers.getAlgorithm())));
+ headers.getSignatureAlgorithm()));
}
public String signWith(byte[] key) {
return signWith(JwsUtils.getHmacSignatureProvider(key,
- SignatureAlgorithm.getAlgorithm(headers.getAlgorithm())));
+ headers.getSignatureAlgorithm()));
}
public String signWith(JwsSignatureProvider signer) {
byte[] bytes = StringUtils.toBytesUTF8(getUnsignedEncodedJws());
- byte[] sig = signer.sign(getJoseHeaders(), bytes);
+ byte[] sig = signer.sign(getJwsHeaders(), bytes);
return setSignatureBytes(sig);
}
@@ -108,10 +107,10 @@ public class JwsCompactProducer {
this.signature = sig;
}
private boolean isPlainText() {
- return AlgorithmUtils.PLAIN_TEXT_ALGO.equals(getAlgorithm());
+ return SignatureAlgorithm.NONE == getAlgorithm();
}
- private String getAlgorithm() {
- return getJoseHeaders().getAlgorithm();
+ private SignatureAlgorithm getAlgorithm() {
+ return getJwsHeaders().getSignatureAlgorithm();
}
private void checkAlgorithm() {
if (getAlgorithm() == null) {
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/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 33dc8bf..bf15ace 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
@@ -32,7 +32,6 @@ import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.jaxrs.provider.json.JsonMapObject;
import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
-import org.apache.cxf.rs.security.jose.JoseHeaders;
import org.apache.cxf.rs.security.jose.JoseUtils;
import org.apache.cxf.rs.security.jose.jwa.SignatureAlgorithm;
import org.apache.cxf.rs.security.jose.jwk.JsonWebKey;
@@ -97,7 +96,7 @@ public class JwsJsonConsumer {
new JwsJsonSignatureEntry(encodedJwsPayload,
protectedHeader,
signature,
- header != null ? new JoseHeaders(header) : null);
+ header != null ? new JwsHeaders(header) : null);
}
public String getSignedDocument() {
return this.jwsSignedDocument;
@@ -114,12 +113,12 @@ public class JwsJsonConsumer {
public List<JwsJsonSignatureEntry> getSignatureEntries() {
return Collections.unmodifiableList(signatureEntries);
}
- public MultivaluedMap<String, JwsJsonSignatureEntry> getSignatureEntryMap() {
+ public MultivaluedMap<SignatureAlgorithm, JwsJsonSignatureEntry> getSignatureEntryMap() {
return JwsUtils.getJwsJsonSignatureMap(signatureEntries);
}
public boolean verifySignatureWith(JwsSignatureVerifier validator) {
List<JwsJsonSignatureEntry> theSignatureEntries =
- getSignatureEntryMap().get(validator.getAlgorithm().getJwaName());
+ getSignatureEntryMap().get(validator.getAlgorithm());
if (theSignatureEntries != null) {
for (JwsJsonSignatureEntry signatureEntry : theSignatureEntries) {
if (signatureEntry.verifySignatureWith(validator)) {
@@ -151,7 +150,7 @@ public class JwsJsonConsumer {
List<JwsJsonSignatureEntry> validatedSignatures = new LinkedList<JwsJsonSignatureEntry>();
for (JwsSignatureVerifier validator : validators) {
List<JwsJsonSignatureEntry> theSignatureEntries =
- getSignatureEntryMap().get(validator.getAlgorithm().getJwaName());
+ getSignatureEntryMap().get(validator.getAlgorithm());
if (theSignatureEntries != null) {
for (JwsJsonSignatureEntry sigEntry : theSignatureEntries) {
if (sigEntry.verifySignatureWith(validator)) {
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/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 16841b7..4d2a827 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
@@ -29,9 +29,9 @@ import javax.ws.rs.core.MultivaluedMap;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.common.util.StringUtils;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
import org.apache.cxf.rs.security.jose.JoseConstants;
import org.apache.cxf.rs.security.jose.JoseHeaders;
-import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
import org.apache.cxf.rs.security.jose.jwa.SignatureAlgorithm;
import org.apache.cxf.rs.security.jose.jwk.JsonWebKey;
public class JwsJsonProducer {
@@ -40,7 +40,7 @@ public class JwsJsonProducer {
private String plainPayload;
private String encodedPayload;
private List<JwsJsonSignatureEntry> signatures = new LinkedList<JwsJsonSignatureEntry>();
- private JoseHeadersReaderWriter writer = new JoseHeadersReaderWriter();
+ private JsonMapObjectReaderWriter writer = new JsonMapObjectReaderWriter();
public JwsJsonProducer(String tbsDocument) {
this(tbsDocument, false);
}
@@ -90,7 +90,7 @@ public class JwsJsonProducer {
return signatures;
}
- public MultivaluedMap<String, JwsJsonSignatureEntry> getSignatureEntryMap() {
+ public MultivaluedMap<SignatureAlgorithm, JwsJsonSignatureEntry> getSignatureEntryMap() {
return JwsUtils.getJwsJsonSignatureMap(signatures);
}
public String signWith(List<JwsSignatureProvider> signers) {
@@ -100,12 +100,12 @@ public class JwsJsonProducer {
return getJwsJsonSignedDocument();
}
public String signWith(JwsSignatureProvider signer) {
- JoseHeaders headers = new JoseHeaders();
- headers.setAlgorithm(signer.getAlgorithm().getJwaName());
+ JwsHeaders headers = new JwsHeaders();
+ headers.setSignatureAlgorithm(signer.getAlgorithm());
return signWith(signer, headers);
}
public String signWith(JwsSignatureProvider signer,
- JoseHeaders protectedHeader) {
+ JwsHeaders protectedHeader) {
return signWith(signer, protectedHeader, null);
}
public String signWith(JsonWebKey jwk) {
@@ -118,8 +118,8 @@ public class JwsJsonProducer {
return signWith(JwsUtils.getHmacSignatureProvider(key, algo));
}
public String signWith(JwsSignatureProvider signer,
- JoseHeaders protectedHeader,
- JoseHeaders unprotectedHeader) {
+ JwsHeaders protectedHeader,
+ JwsHeaders unprotectedHeader) {
JwsHeaders unionHeaders = new JwsHeaders();
if (protectedHeader != null) {
@@ -134,7 +134,7 @@ public class JwsJsonProducer {
}
unionHeaders.asMap().putAll(unprotectedHeader.asMap());
}
- if (unionHeaders.getAlgorithm() == null) {
+ if (unionHeaders.getSignatureAlgorithm() == null) {
LOG.warning("Algorithm header is not set");
throw new JwsException(JwsException.Error.INVALID_JSON_JWS);
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonSignatureEntry.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonSignatureEntry.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonSignatureEntry.java
index 2238a3b..054c3d3 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonSignatureEntry.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJsonSignatureEntry.java
@@ -24,9 +24,9 @@ import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.common.util.StringUtils;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
import org.apache.cxf.rs.security.jose.JoseConstants;
import org.apache.cxf.rs.security.jose.JoseHeaders;
-import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
import org.apache.cxf.rs.security.jose.JoseUtils;
import org.apache.cxf.rs.security.jose.jwk.JsonWebKey;
@@ -36,15 +36,15 @@ public class JwsJsonSignatureEntry {
private String encodedJwsPayload;
private String encodedProtectedHeader;
private String encodedSignature;
- private JoseHeaders protectedHeader;
- private JoseHeaders unprotectedHeader;
+ private JwsHeaders protectedHeader;
+ private JwsHeaders unprotectedHeader;
private JwsHeaders unionHeaders;
- private JoseHeadersReaderWriter writer = new JoseHeadersReaderWriter();
+ private JsonMapObjectReaderWriter writer = new JsonMapObjectReaderWriter();
public JwsJsonSignatureEntry(String encodedJwsPayload,
String encodedProtectedHeader,
String encodedSignature,
- JoseHeaders unprotectedHeader) {
+ JwsHeaders unprotectedHeader) {
if (encodedProtectedHeader == null && unprotectedHeader == null || encodedSignature == null) {
LOG.warning("Invalid Signature entry");
throw new JwsException(JwsException.Error.INVALID_JSON_JWS);
@@ -55,7 +55,7 @@ public class JwsJsonSignatureEntry {
this.encodedSignature = encodedSignature;
this.unprotectedHeader = unprotectedHeader;
if (encodedProtectedHeader != null) {
- this.protectedHeader = writer.fromJsonHeaders(JoseUtils.decodeToString(encodedProtectedHeader));
+ this.protectedHeader = new JwsHeaders(writer.fromJson(JoseUtils.decodeToString(encodedProtectedHeader)));
}
prepare();
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactConsumer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactConsumer.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactConsumer.java
index cfa6e39..e2bcfa8 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactConsumer.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactConsumer.java
@@ -20,7 +20,6 @@ package org.apache.cxf.rs.security.jose.jws;
import org.apache.cxf.rs.security.jose.jwt.JwtClaims;
import org.apache.cxf.rs.security.jose.jwt.JwtToken;
-import org.apache.cxf.rs.security.jose.jwt.JwtTokenJson;
import org.apache.cxf.rs.security.jose.jwt.JwtTokenReaderWriter;
public class JwsJwtCompactConsumer extends JwsCompactConsumer {
@@ -28,16 +27,15 @@ public class JwsJwtCompactConsumer extends JwsCompactConsumer {
public JwsJwtCompactConsumer(String encodedJws) {
super(encodedJws, null, new JwtTokenReaderWriter());
}
- public JwtTokenJson getDecodedJsonToken() {
- return new JwtTokenJson(getDecodedJsonHeaders(), getDecodedJwsPayload());
- }
public JwtClaims getJwtClaims() {
return getJwtToken().getClaims();
}
public JwtToken getJwtToken() {
if (token == null) {
- token = ((JwtTokenReaderWriter)getReader()).fromJson(
- new JwtTokenJson(getDecodedJsonHeaders(), getDecodedJwsPayload()));
+ JwsHeaders theHeaders = super.getJwsHeaders();
+ JwtClaims theClaims =
+ ((JwtTokenReaderWriter)getReader()).fromJsonClaims(getDecodedJwsPayload());
+ token = new JwtToken(theHeaders, theClaims);
}
return token;
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactProducer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactProducer.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactProducer.java
index 8995cda..aaaa004 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactProducer.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactProducer.java
@@ -36,7 +36,8 @@ public class JwsJwtCompactProducer extends JwsCompactProducer {
this(new JwtToken(headers, claims), null);
}
protected JwsJwtCompactProducer(JwtToken token, JwtTokenReaderWriter w) {
- super(new JwsHeaders(token.getHeaders()), w, JwtUtils.claimsToJson(token.getClaims(), w));
+ super(new JwsHeaders(token.getHeaders()), w,
+ JwtUtils.claimsToJson(token.getClaims(), w));
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java
index d0b5b6e..73b291e 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java
@@ -173,18 +173,19 @@ public final class JwsUtils {
}
return null;
}
- public static MultivaluedMap<String, JwsJsonSignatureEntry> getJwsJsonSignatureMap(
+ public static MultivaluedMap<SignatureAlgorithm, JwsJsonSignatureEntry> getJwsJsonSignatureMap(
List<JwsJsonSignatureEntry> signatures) {
- MultivaluedMap<String, JwsJsonSignatureEntry> map = new MetadataMap<String, JwsJsonSignatureEntry>();
+ MultivaluedMap<SignatureAlgorithm, JwsJsonSignatureEntry> map =
+ new MetadataMap<SignatureAlgorithm, JwsJsonSignatureEntry>();
for (JwsJsonSignatureEntry entry : signatures) {
- map.add(entry.getUnionHeader().getAlgorithm(), entry);
+ map.add(entry.getUnionHeader().getSignatureAlgorithm(), entry);
}
return map;
}
public static JwsSignatureProvider loadSignatureProvider(boolean required) {
return loadSignatureProvider(null, required);
}
- public static JwsSignatureProvider loadSignatureProvider(JoseHeaders headers, boolean required) {
+ public static JwsSignatureProvider loadSignatureProvider(JwsHeaders headers, boolean required) {
Message m = JAXRSUtils.getCurrentMessage();
Properties props = KeyManagementUtils.loadStoreProperties(m, required,
RSSEC_SIGNATURE_OUT_PROPS, RSSEC_SIGNATURE_PROPS);
@@ -193,14 +194,14 @@ public final class JwsUtils {
}
JwsSignatureProvider theSigProvider = loadSignatureProvider(m, props, headers, false);
if (headers != null) {
- headers.setAlgorithm(theSigProvider.getAlgorithm().getJwaName());
+ headers.setSignatureAlgorithm(theSigProvider.getAlgorithm());
}
return theSigProvider;
}
public static JwsSignatureVerifier loadSignatureVerifier(boolean required) {
return loadSignatureVerifier(null, required);
}
- public static JwsSignatureVerifier loadSignatureVerifier(JoseHeaders headers, boolean required) {
+ public static JwsSignatureVerifier loadSignatureVerifier(JwsHeaders headers, boolean required) {
Message m = JAXRSUtils.getCurrentMessage();
Properties props = KeyManagementUtils.loadStoreProperties(m, required,
RSSEC_SIGNATURE_IN_PROPS, RSSEC_SIGNATURE_PROPS);
@@ -297,7 +298,7 @@ public final class JwsUtils {
}
private static JwsSignatureVerifier loadSignatureVerifier(Message m,
Properties props,
- JoseHeaders inHeaders,
+ JwsHeaders inHeaders,
boolean ignoreNullVerifier) {
JwsSignatureVerifier theVerifier = null;
String inHeaderKid = null;
@@ -311,12 +312,12 @@ public final class JwsUtils {
throw new JwsException(JwsException.Error.INVALID_KEY);
}
return getSignatureVerifier(publicJwk,
- SignatureAlgorithm.getAlgorithm(inHeaders.getAlgorithm()));
+ inHeaders.getSignatureAlgorithm());
} else if (inHeaders.getHeader(JoseConstants.HEADER_X509_CHAIN) != null) {
List<X509Certificate> chain = KeyManagementUtils.toX509CertificateChain(inHeaders.getX509Chain());
KeyManagementUtils.validateCertificateChain(props, chain);
return getPublicKeySignatureVerifier(chain.get(0).getPublicKey(),
- SignatureAlgorithm.getAlgorithm(inHeaders.getAlgorithm()));
+ inHeaders.getSignatureAlgorithm());
}
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/NoneJwsSignatureProvider.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/NoneJwsSignatureProvider.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/NoneJwsSignatureProvider.java
index 3f6a5ca..6ed31fd 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/NoneJwsSignatureProvider.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/NoneJwsSignatureProvider.java
@@ -24,7 +24,7 @@ public class NoneJwsSignatureProvider implements JwsSignatureProvider {
@Override
public SignatureAlgorithm getAlgorithm() {
- return SignatureAlgorithm.PLAIN;
+ return SignatureAlgorithm.NONE;
}
@Override
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/NoneJwsSignatureVerifier.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/NoneJwsSignatureVerifier.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/NoneJwsSignatureVerifier.java
index 0373bf8..441261b 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/NoneJwsSignatureVerifier.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/NoneJwsSignatureVerifier.java
@@ -24,12 +24,13 @@ public class NoneJwsSignatureVerifier implements JwsSignatureVerifier {
@Override
public boolean verify(JwsHeaders headers, String unsignedText, byte[] signature) {
- return headers.getAlgorithm().equals(getAlgorithm().getJwaName()) && signature.length == 0;
+ return headers.getSignatureAlgorithm() == getAlgorithm()
+ && signature.length == 0;
}
@Override
public SignatureAlgorithm getAlgorithm() {
- return SignatureAlgorithm.PLAIN;
+ return SignatureAlgorithm.NONE;
}
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/PrivateKeyJwsSignatureProvider.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/PrivateKeyJwsSignatureProvider.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/PrivateKeyJwsSignatureProvider.java
index 258d5e3..476d90f 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/PrivateKeyJwsSignatureProvider.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/PrivateKeyJwsSignatureProvider.java
@@ -24,7 +24,6 @@ import java.security.Signature;
import java.security.SignatureException;
import java.security.spec.AlgorithmParameterSpec;
-import org.apache.cxf.rs.security.jose.JoseHeaders;
import org.apache.cxf.rs.security.jose.jwa.AlgorithmUtils;
import org.apache.cxf.rs.security.jose.jwa.SignatureAlgorithm;
import org.apache.cxf.rt.security.crypto.CryptoUtils;
@@ -47,9 +46,10 @@ public class PrivateKeyJwsSignatureProvider extends AbstractJwsSignatureProvider
this.random = random;
this.signatureSpec = spec;
}
- protected JwsSignature doCreateJwsSignature(JoseHeaders headers) {
+ protected JwsSignature doCreateJwsSignature(JwsHeaders headers) {
+ final String sigAlgo = headers.getSignatureAlgorithm().getJwaName();
final Signature s = CryptoUtils.getSignature(key,
- AlgorithmUtils.toJavaName(headers.getAlgorithm()),
+ AlgorithmUtils.toJavaName(sigAlgo),
random,
signatureSpec);
return doCreateJwsSignature(s);
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/PublicKeyJwsSignatureVerifier.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/PublicKeyJwsSignatureVerifier.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/PublicKeyJwsSignatureVerifier.java
index 86fabca..917890f 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/PublicKeyJwsSignatureVerifier.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/PublicKeyJwsSignatureVerifier.java
@@ -48,14 +48,16 @@ public class PublicKeyJwsSignatureVerifier implements JwsSignatureVerifier {
return CryptoUtils.verifySignature(StringUtils.toBytesUTF8(unsignedText),
signature,
key,
- AlgorithmUtils.toJavaName(checkAlgorithm(headers.getAlgorithm())),
+ AlgorithmUtils.toJavaName(checkAlgorithm(
+ headers.getSignatureAlgorithm())),
signatureSpec);
} catch (Exception ex) {
LOG.warning("Invalid signature: " + ex.getMessage());
throw new JwsException(JwsException.Error.INVALID_SIGNATURE, ex);
}
}
- protected String checkAlgorithm(String algo) {
+ protected String checkAlgorithm(SignatureAlgorithm sigAlgo) {
+ String algo = sigAlgo.getJwaName();
if (algo == null) {
LOG.warning("Signature algorithm is not set");
throw new JwsException(JwsException.Error.ALGORITHM_NOT_SET);
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenJson.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenJson.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenJson.java
deleted file mode 100644
index e8e79f0..0000000
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenJson.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.rs.security.jose.jwt;
-
-
-
-public class JwtTokenJson {
- private String headersJson;
- private String claimsJson;
- public JwtTokenJson(String headersJson, String claimsJson) {
- this.headersJson = headersJson;
- this.claimsJson = claimsJson;
- }
- public String getHeadersJson() {
- return headersJson;
- }
- public String getClaimsJson() {
- return claimsJson;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/536293b5/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenReaderWriter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenReaderWriter.java b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenReaderWriter.java
index 42cc004..0ebf8a3 100644
--- a/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenReaderWriter.java
+++ b/rt/rs/security/jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenReaderWriter.java
@@ -22,13 +22,12 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
-import org.apache.cxf.rs.security.jose.JoseHeaders;
-import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
+import org.apache.cxf.jaxrs.provider.json.JsonMapObjectReaderWriter;
-public class JwtTokenReaderWriter extends JoseHeadersReaderWriter {
+public class JwtTokenReaderWriter extends JsonMapObjectReaderWriter {
private static final Set<String> DATE_PROPERTIES =
new HashSet<String>(Arrays.asList(JwtConstants.CLAIM_EXPIRY,
JwtConstants.CLAIM_ISSUED_AT,
@@ -38,12 +37,6 @@ public class JwtTokenReaderWriter extends JoseHeadersReaderWriter {
return toJson(claims);
}
- public JwtTokenJson tokenToJson(JwtToken token) {
- return new JwtTokenJson(toJson(token.getHeaders()),
- toJson(token.getClaims()));
- }
-
-
public JwtClaims fromJsonClaims(String claimsJson) {
JwtClaims claims = new JwtClaims();
fromJson(claims, claimsJson);
@@ -51,16 +44,6 @@ public class JwtTokenReaderWriter extends JoseHeadersReaderWriter {
}
- private JwtToken fromJson(String headersJson, String claimsJson) {
- JoseHeaders headers = fromJsonHeaders(headersJson);
- JwtClaims claims = fromJsonClaims(claimsJson);
- return new JwtToken(headers, claims);
- }
-
- public JwtToken fromJson(JwtTokenJson pair) {
- return fromJson(pair.getHeadersJson(), pair.getClaimsJson());
- }
-
@Override
protected Object readPrimitiveValue(String name, String json, int from, int to) {
Object value = super.readPrimitiveValue(name, json, from, to);