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 2014/09/25 23:16:09 UTC
git commit: [CXF-5944] More refactorings
Repository: cxf
Updated Branches:
refs/heads/3.0.x-fixes 3e21a0229 -> 45480170b
[CXF-5944] More refactorings
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/45480170
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/45480170
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/45480170
Branch: refs/heads/3.0.x-fixes
Commit: 45480170bd9e9c2a430bc7247b738a0cd9388396
Parents: 3e21a02
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Thu Sep 25 18:23:38 2014 +0100
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Thu Sep 25 22:15:42 2014 +0100
----------------------------------------------------------------------
.../cxf/common/util/Base64UrlUtility.java | 71 +++++++++++++++++++
.../jose/jaxrs/AbstractJweDecryptingFilter.java | 8 +--
.../jose/jaxrs/AbstractJwsReaderProvider.java | 10 ---
.../jose/jaxrs/JwsClientResponseFilter.java | 3 +-
.../jose/jaxrs/JwsContainerRequestFilter.java | 3 +-
.../jose/jaxrs/JwsJwtMessageBodyReader.java | 3 +-
.../jose/jaxrs/JwsWriterInterceptor.java | 2 +-
.../jose/jwe/AbstractJweDecryption.java | 6 +-
.../jose/jwe/AesCbcHmacJweDecryption.java | 5 +-
.../jwe/AesGcmWrapKeyDecryptionAlgorithm.java | 2 +-
.../jwe/AesGcmWrapKeyEncryptionAlgorithm.java | 2 +-
.../jose/jwe/DirectKeyJweDecryption.java | 13 ++--
.../security/jose/jwe/JweCompactConsumer.java | 10 +--
.../security/jose/jwe/JweCompactProducer.java | 2 +-
.../security/jose/jwe/JweCryptoProperties.java | 22 ------
.../cxf/rs/security/jose/jwe/JweHeaders.java | 6 +-
.../rs/security/jose/jwe/JweOutputStream.java | 2 +-
.../PbesHmacAesWrapKeyDecryptionAlgorithm.java | 2 +-
.../PbesHmacAesWrapKeyEncryptionAlgorithm.java | 2 +-
.../jose/jwe/WrappedKeyJweDecryption.java | 21 ++----
.../jose/jws/EcDsaJwsSignatureVerifier.java | 31 ++++++++
.../jose/jws/HmacJwsSignatureProvider.java | 2 +-
.../jose/jws/HmacJwsSignatureVerifier.java | 2 +-
.../security/jose/jws/JwsCompactConsumer.java | 23 ++----
.../security/jose/jws/JwsCompactProducer.java | 2 +-
.../cxf/rs/security/jose/jws/JwsHeaders.java | 5 ++
.../jose/jws/JwsJwtCompactConsumer.java | 10 +--
.../rs/security/jose/jws/JwsOutputStream.java | 2 +-
.../jose/jws/JwsSignatureProperties.java | 23 ------
.../cxf/rs/security/jose/jws/JwsUtils.java | 2 +-
.../security/jose/jwt/JwtTokenReaderWriter.java | 7 +-
.../jose/jwt/grant/AbstractJwtBearerGrant.java | 2 +-
.../jose/jwe/JweCompactReaderWriterTest.java | 2 +-
.../jose/jwe/JwePbeHmacAesWrapTest.java | 2 +-
.../jose/jws/JwsCompactReaderWriterTest.java | 2 +-
.../auth/saml/Saml2BearerAuthHandler.java | 2 +-
.../saml/Saml2BearerAuthOutInterceptor.java | 2 +-
.../grants/saml/AbstractSaml2BearerGrant.java | 2 +-
.../grants/saml/Saml2BearerGrantHandler.java | 3 +-
.../oauth2/grants/code/DigestCodeVerifier.java | 2 +-
.../security/oauth2/utils/Base64UrlUtility.java | 74 --------------------
.../oauth2/utils/crypto/CryptoUtils.java | 2 +-
.../security/oauth2/utils/crypto/HmacUtils.java | 2 +-
.../jaxrs/security/oauth2/JAXRSOAuth2Test.java | 2 +-
44 files changed, 169 insertions(+), 234 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/core/src/main/java/org/apache/cxf/common/util/Base64UrlUtility.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/common/util/Base64UrlUtility.java b/core/src/main/java/org/apache/cxf/common/util/Base64UrlUtility.java
new file mode 100644
index 0000000..25dc0df
--- /dev/null
+++ b/core/src/main/java/org/apache/cxf/common/util/Base64UrlUtility.java
@@ -0,0 +1,71 @@
+/**
+ * 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.common.util;
+
+/**
+ * Base64 URL Encoding/Decoding utility.
+ *
+ * Character 62 ('+') is '-', Character 63 ('/') is '_';
+ * Padding characters are dropped after the encoding.
+ *
+ */
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
+
+
+public final class Base64UrlUtility {
+ private Base64UrlUtility() {
+ //utility class, never constructed
+ }
+
+ public static byte[] decode(String encoded) throws Base64Exception {
+ return Base64Utility.decode(encoded, true);
+ }
+
+ public static String encode(String str) {
+ try {
+ return encode(str.getBytes("UTF-8"));
+ } catch (UnsupportedEncodingException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+
+ public static String encode(byte[] id) {
+ return encodeChunk(id, 0, id.length);
+ }
+
+ public static String encodeChunk(byte[] id, int offset, int length) {
+ char[] chunk = Base64Utility.encodeChunk(id, offset, length, true);
+ if (chunk != null) {
+ return new String(chunk);
+ } else {
+ return null;
+ }
+ }
+
+ public static void encodeAndStream(byte[] id,
+ int o,
+ int l,
+ OutputStream os) throws IOException {
+ Base64Utility.encodeAndStream(id, o, l, true, os);
+ }
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJweDecryptingFilter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJweDecryptingFilter.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJweDecryptingFilter.java
index 1906622..31fc28b 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJweDecryptingFilter.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJweDecryptingFilter.java
@@ -31,7 +31,6 @@ import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageUtils;
import org.apache.cxf.rs.security.jose.jwa.Algorithm;
import org.apache.cxf.rs.security.jose.jwe.AesCbcHmacJweDecryption;
-import org.apache.cxf.rs.security.jose.jwe.JweCryptoProperties;
import org.apache.cxf.rs.security.jose.jwe.JweDecryptionOutput;
import org.apache.cxf.rs.security.jose.jwe.JweDecryptionProvider;
import org.apache.cxf.rs.security.jose.jwe.JweHeaders;
@@ -48,7 +47,6 @@ public class AbstractJweDecryptingFilter {
private static final String RSSEC_ENCRYPTION_PROPS = "rs.security.encryption.properties";
private static final String JSON_WEB_ENCRYPTION_CEK_ALGO_PROP = "rs.security.jwe.content.encryption.algorithm";
private JweDecryptionProvider decryption;
- private JweCryptoProperties cryptoProperties;
private String defaultMediaType;
protected JweDecryptionOutput decrypt(InputStream is) throws IOException {
JweDecryptionProvider theDecryptor = getInitializedDecryptionProvider();
@@ -92,7 +90,7 @@ public class AbstractJweDecryptingFilter {
if (isAesHmac) {
return new AesCbcHmacJweDecryption(keyDecryptionProvider);
} else {
- return new WrappedKeyJweDecryption(keyDecryptionProvider, cryptoProperties, null);
+ return new WrappedKeyJweDecryption(keyDecryptionProvider);
}
} catch (SecurityException ex) {
@@ -103,10 +101,6 @@ public class AbstractJweDecryptingFilter {
}
- public void setCryptoProperties(JweCryptoProperties cryptoProperties) {
- this.cryptoProperties = cryptoProperties;
- }
-
public String getDefaultMediaType() {
return defaultMediaType;
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsReaderProvider.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsReaderProvider.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsReaderProvider.java
index ac9366a..1eb9dee 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsReaderProvider.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/AbstractJwsReaderProvider.java
@@ -28,7 +28,6 @@ import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageUtils;
import org.apache.cxf.rs.security.jose.jwk.JsonWebKey;
import org.apache.cxf.rs.security.jose.jwk.JwkUtils;
-import org.apache.cxf.rs.security.jose.jws.JwsSignatureProperties;
import org.apache.cxf.rs.security.jose.jws.JwsSignatureVerifier;
import org.apache.cxf.rs.security.jose.jws.JwsUtils;
import org.apache.cxf.rs.security.jose.jws.PublicKeyJwsSignatureVerifier;
@@ -41,21 +40,12 @@ public class AbstractJwsReaderProvider {
private JwsSignatureVerifier sigVerifier;
- private JwsSignatureProperties sigProperties;
private String defaultMediaType;
public void setSignatureVerifier(JwsSignatureVerifier signatureVerifier) {
this.sigVerifier = signatureVerifier;
}
- public void setSignatureProperties(JwsSignatureProperties signatureProperties) {
- this.sigProperties = signatureProperties;
- }
-
- public JwsSignatureProperties getSigProperties() {
- return sigProperties;
- }
-
protected JwsSignatureVerifier getInitializedSigVerifier() {
if (sigVerifier != null) {
return sigVerifier;
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsClientResponseFilter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsClientResponseFilter.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsClientResponseFilter.java
index 32fc7dc..64a1cfa 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsClientResponseFilter.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsClientResponseFilter.java
@@ -36,8 +36,7 @@ public class JwsClientResponseFilter extends AbstractJwsReaderProvider implement
@Override
public void filter(ClientRequestContext req, ClientResponseContext res) throws IOException {
JwsSignatureVerifier theSigVerifier = getInitializedSigVerifier();
- JwsCompactConsumer p = new JwsCompactConsumer(IOUtils.readStringFromStream(res.getEntityStream()),
- getSigProperties());
+ JwsCompactConsumer p = new JwsCompactConsumer(IOUtils.readStringFromStream(res.getEntityStream()));
if (!p.verifySignatureWith(theSigVerifier)) {
throw new SecurityException();
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsContainerRequestFilter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsContainerRequestFilter.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsContainerRequestFilter.java
index 3bd36b9..fbd051d 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsContainerRequestFilter.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsContainerRequestFilter.java
@@ -39,8 +39,7 @@ public class JwsContainerRequestFilter extends AbstractJwsReaderProvider impleme
public void filter(ContainerRequestContext context) throws IOException {
JwsSignatureVerifier theSigVerifier = getInitializedSigVerifier();
- JwsCompactConsumer p = new JwsCompactConsumer(IOUtils.readStringFromStream(context.getEntityStream()),
- getSigProperties());
+ JwsCompactConsumer p = new JwsCompactConsumer(IOUtils.readStringFromStream(context.getEntityStream()));
if (!p.verifySignatureWith(theSigVerifier)) {
context.abortWith(JAXRSUtils.toResponse(400));
return;
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsJwtMessageBodyReader.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsJwtMessageBodyReader.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsJwtMessageBodyReader.java
index 831d114..b1c1f53 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsJwtMessageBodyReader.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsJwtMessageBodyReader.java
@@ -46,8 +46,7 @@ public class JwsJwtMessageBodyReader extends AbstractJwsReaderProvider
MultivaluedMap<String, String> headers, InputStream is) throws IOException,
WebApplicationException {
JwsSignatureVerifier theSigVerifier = getInitializedSigVerifier();
- JwsJwtCompactConsumer p = new JwsJwtCompactConsumer(IOUtils.readStringFromStream(is),
- getSigProperties());
+ JwsJwtCompactConsumer p = new JwsJwtCompactConsumer(IOUtils.readStringFromStream(is));
p.verifySignatureWith(theSigVerifier);
return p.getJwtToken();
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsWriterInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsWriterInterceptor.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsWriterInterceptor.java
index d01623d..1251a43 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsWriterInterceptor.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/JwsWriterInterceptor.java
@@ -27,6 +27,7 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.ext.WriterInterceptor;
import javax.ws.rs.ext.WriterInterceptorContext;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.io.CachedOutputStream;
import org.apache.cxf.jaxrs.utils.JAXRSUtils;
import org.apache.cxf.rs.security.jose.JoseConstants;
@@ -39,7 +40,6 @@ import org.apache.cxf.rs.security.jose.jws.JwsSignature;
import org.apache.cxf.rs.security.jose.jws.JwsSignatureProvider;
import org.apache.cxf.rs.security.jose.jwt.JwtHeaders;
import org.apache.cxf.rs.security.oauth2.utils.Base64UrlOutputStream;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
@Priority(Priorities.JWS_WRITE_PRIORITY)
public class JwsWriterInterceptor extends AbstractJwsWriterProvider implements WriterInterceptor {
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AbstractJweDecryption.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AbstractJweDecryption.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AbstractJweDecryption.java
index 663a5ec..292422e 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AbstractJweDecryption.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AbstractJweDecryption.java
@@ -29,15 +29,12 @@ import org.apache.cxf.rs.security.oauth2.utils.crypto.CryptoUtils;
import org.apache.cxf.rs.security.oauth2.utils.crypto.KeyProperties;
public abstract class AbstractJweDecryption implements JweDecryptionProvider {
- private JweCryptoProperties props;
private KeyDecryptionAlgorithm keyDecryptionAlgo;
private ContentDecryptionAlgorithm contentDecryptionAlgo;
private JoseHeadersReader reader = new JoseHeadersReaderWriter();
- protected AbstractJweDecryption(JweCryptoProperties props,
- JoseHeadersReader theReader,
+ protected AbstractJweDecryption(JoseHeadersReader theReader,
KeyDecryptionAlgorithm keyDecryptionAlgo,
ContentDecryptionAlgorithm contentDecryptionAlgo) {
- this.props = props;
if (theReader != null) {
reader = theReader;
}
@@ -58,7 +55,6 @@ public abstract class AbstractJweDecryption implements JweDecryptionProvider {
}
protected JweDecryptionOutput doDecrypt(JweCompactConsumer consumer) {
- consumer.enforceJweCryptoProperties(props);
byte[] cek = getContentEncryptionKey(consumer);
return doDecrypt(consumer, cek);
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesCbcHmacJweDecryption.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesCbcHmacJweDecryption.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesCbcHmacJweDecryption.java
index c29ee2a..2db84f5 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesCbcHmacJweDecryption.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesCbcHmacJweDecryption.java
@@ -27,12 +27,11 @@ import org.apache.cxf.rs.security.jose.JoseHeadersReader;
public class AesCbcHmacJweDecryption extends AbstractJweDecryption {
public AesCbcHmacJweDecryption(KeyDecryptionAlgorithm keyDecryptionAlgo) {
- this(keyDecryptionAlgo, null, null);
+ this(keyDecryptionAlgo, null);
}
public AesCbcHmacJweDecryption(KeyDecryptionAlgorithm keyDecryptionAlgo,
- JweCryptoProperties props,
JoseHeadersReader reader) {
- super(props, reader, keyDecryptionAlgo, new AesCbcContentDecryptionAlgorithm());
+ super(reader, keyDecryptionAlgo, new AesCbcContentDecryptionAlgorithm());
}
protected JweDecryptionOutput doDecrypt(JweCompactConsumer consumer, byte[] cek) {
validateAuthenticationTag(consumer, cek);
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesGcmWrapKeyDecryptionAlgorithm.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesGcmWrapKeyDecryptionAlgorithm.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesGcmWrapKeyDecryptionAlgorithm.java
index 0b2c824..6137e56 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesGcmWrapKeyDecryptionAlgorithm.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesGcmWrapKeyDecryptionAlgorithm.java
@@ -22,8 +22,8 @@ import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.SecretKey;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.rs.security.jose.jwa.Algorithm;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
import org.apache.cxf.rs.security.oauth2.utils.crypto.CryptoUtils;
public class AesGcmWrapKeyDecryptionAlgorithm extends WrappedKeyDecryptionAlgorithm {
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesGcmWrapKeyEncryptionAlgorithm.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesGcmWrapKeyEncryptionAlgorithm.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesGcmWrapKeyEncryptionAlgorithm.java
index 220763a..ff34b93 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesGcmWrapKeyEncryptionAlgorithm.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/AesGcmWrapKeyEncryptionAlgorithm.java
@@ -25,8 +25,8 @@ import java.util.Set;
import javax.crypto.SecretKey;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.rs.security.jose.jwa.Algorithm;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
import org.apache.cxf.rs.security.oauth2.utils.crypto.CryptoUtils;
public class AesGcmWrapKeyEncryptionAlgorithm extends AbstractWrapKeyEncryptionAlgorithm {
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/DirectKeyJweDecryption.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/DirectKeyJweDecryption.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/DirectKeyJweDecryption.java
index b4a44dc..1ab9e9f 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/DirectKeyJweDecryption.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/DirectKeyJweDecryption.java
@@ -26,19 +26,14 @@ public class DirectKeyJweDecryption extends AbstractJweDecryption {
public DirectKeyJweDecryption(Key contentDecryptionKey) {
this(contentDecryptionKey, null);
}
- public DirectKeyJweDecryption(Key contentDecryptionKey, JweCryptoProperties props) {
- this(contentDecryptionKey, props, null);
- }
- public DirectKeyJweDecryption(Key contentDecryptionKey, JweCryptoProperties props,
- JoseHeadersReader reader) {
- this(contentDecryptionKey, props, reader,
- new AesGcmContentDecryptionAlgorithm());
+ public DirectKeyJweDecryption(Key contentDecryptionKey, JoseHeadersReader reader) {
+ this(contentDecryptionKey, reader, new AesGcmContentDecryptionAlgorithm());
}
public DirectKeyJweDecryption(Key contentDecryptionKey,
- JweCryptoProperties props,
JoseHeadersReader reader,
ContentDecryptionAlgorithm cipherProps) {
- super(props, reader, new DirectKeyDecryptionAlgorithm(contentDecryptionKey),
+ super(reader,
+ new DirectKeyDecryptionAlgorithm(contentDecryptionKey),
cipherProps);
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactConsumer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactConsumer.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactConsumer.java
index 6181ff4..8fc9805 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactConsumer.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactConsumer.java
@@ -22,9 +22,9 @@ package org.apache.cxf.rs.security.jose.jwe;
import java.io.UnsupportedEncodingException;
import org.apache.cxf.common.util.Base64Exception;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.rs.security.jose.JoseHeadersReader;
import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
public class JweCompactConsumer {
@@ -49,18 +49,12 @@ public class JweCompactConsumer {
encryptedContent = Base64UrlUtility.decode(parts[3]);
authTag = Base64UrlUtility.decode(parts[4]);
- jweHeaders = new JweHeaders(reader.fromJsonHeaders(headersJson).asMap());
+ jweHeaders = new JweHeaders(reader.fromJsonHeaders(headersJson));
} catch (Base64Exception ex) {
throw new SecurityException(ex);
}
}
- public void enforceJweCryptoProperties(JweCryptoProperties props) {
- if (props != null) {
- //TODO
- }
- }
-
public String getDecodedJsonHeaders() {
return headersJson;
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactProducer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactProducer.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactProducer.java
index d035765..176081b 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactProducer.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCompactProducer.java
@@ -22,10 +22,10 @@ package org.apache.cxf.rs.security.jose.jwe;
import java.io.IOException;
import java.io.OutputStream;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
import org.apache.cxf.rs.security.jose.JoseHeadersWriter;
import org.apache.cxf.rs.security.jose.jwt.JwtTokenReaderWriter;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
public class JweCompactProducer {
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCryptoProperties.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCryptoProperties.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCryptoProperties.java
deleted file mode 100644
index 54150e4..0000000
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweCryptoProperties.java
+++ /dev/null
@@ -1,22 +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.jwe;
-
-public class JweCryptoProperties {
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweHeaders.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweHeaders.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweHeaders.java
index 29afa8b..f0e6d37 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweHeaders.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweHeaders.java
@@ -22,10 +22,10 @@ package org.apache.cxf.rs.security.jose.jwe;
import java.io.UnsupportedEncodingException;
import java.util.Map;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.rs.security.jose.JoseConstants;
import org.apache.cxf.rs.security.jose.JoseHeaders;
import org.apache.cxf.rs.security.jose.JoseHeadersWriter;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
@@ -35,6 +35,10 @@ public class JweHeaders extends JoseHeaders {
public JweHeaders() {
}
+ public JweHeaders(JoseHeaders headers) {
+ super(headers.asMap());
+ }
+
public JweHeaders(Map<String, Object> values) {
super(values);
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweOutputStream.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweOutputStream.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweOutputStream.java
index 5abe38c..c6462f1 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweOutputStream.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/JweOutputStream.java
@@ -25,7 +25,7 @@ import java.nio.ByteBuffer;
import javax.crypto.Cipher;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
+import org.apache.cxf.common.util.Base64UrlUtility;
public class JweOutputStream extends FilterOutputStream {
private Cipher encryptingCipher;
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyDecryptionAlgorithm.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyDecryptionAlgorithm.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyDecryptionAlgorithm.java
index ac66535..d338cdd 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyDecryptionAlgorithm.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyDecryptionAlgorithm.java
@@ -18,7 +18,7 @@
*/
package org.apache.cxf.rs.security.jose.jwe;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
+import org.apache.cxf.common.util.Base64UrlUtility;
public class PbesHmacAesWrapKeyDecryptionAlgorithm implements KeyDecryptionAlgorithm {
private byte[] password;
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyEncryptionAlgorithm.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyEncryptionAlgorithm.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyEncryptionAlgorithm.java
index 377e186..3728444 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyEncryptionAlgorithm.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/PbesHmacAesWrapKeyEncryptionAlgorithm.java
@@ -28,8 +28,8 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.rs.security.jose.jwa.Algorithm;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
import org.apache.cxf.rs.security.oauth2.utils.crypto.CryptoUtils;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.digests.SHA256Digest;
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/WrappedKeyJweDecryption.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/WrappedKeyJweDecryption.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/WrappedKeyJweDecryption.java
index 6cb40ba..c2c730b 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/WrappedKeyJweDecryption.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwe/WrappedKeyJweDecryption.java
@@ -29,28 +29,21 @@ public class WrappedKeyJweDecryption extends AbstractJweDecryption {
public WrappedKeyJweDecryption(Key cekDecryptionKey, boolean unwrap) {
this(cekDecryptionKey, unwrap, null);
}
- public WrappedKeyJweDecryption(Key cekDecryptionKey, JweCryptoProperties props) {
- this(cekDecryptionKey, true, props);
- }
- public WrappedKeyJweDecryption(Key cekDecryptionKey, boolean unwrap,
- JweCryptoProperties props) {
- this(cekDecryptionKey, unwrap, props, null);
- }
public WrappedKeyJweDecryption(Key cekDecryptionKey, boolean unwrap,
- JweCryptoProperties props, JoseHeadersReader reader) {
+ JoseHeadersReader reader) {
this(new WrappedKeyDecryptionAlgorithm(cekDecryptionKey, unwrap),
- props, reader);
+ reader);
}
public WrappedKeyJweDecryption(KeyDecryptionAlgorithm keyDecryptionAlgo) {
- this(keyDecryptionAlgo, null, null);
+ this(keyDecryptionAlgo, null);
}
public WrappedKeyJweDecryption(KeyDecryptionAlgorithm keyDecryptionAlgo,
- JweCryptoProperties props, JoseHeadersReader reader) {
- this(keyDecryptionAlgo, props, reader, new AesGcmContentDecryptionAlgorithm());
+ JoseHeadersReader reader) {
+ this(keyDecryptionAlgo, reader, new AesGcmContentDecryptionAlgorithm());
}
public WrappedKeyJweDecryption(KeyDecryptionAlgorithm keyDecryptionAlgo,
- JweCryptoProperties props, JoseHeadersReader reader,
+ JoseHeadersReader reader,
ContentDecryptionAlgorithm cipherProps) {
- super(props, reader, keyDecryptionAlgo, cipherProps);
+ super(reader, keyDecryptionAlgo, cipherProps);
}
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/EcDsaJwsSignatureVerifier.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/EcDsaJwsSignatureVerifier.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/EcDsaJwsSignatureVerifier.java
new file mode 100644
index 0000000..98c72b6
--- /dev/null
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/EcDsaJwsSignatureVerifier.java
@@ -0,0 +1,31 @@
+/**
+ * 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.jws;
+
+import java.security.PublicKey;
+import java.security.spec.AlgorithmParameterSpec;
+
+public class EcDsaJwsSignatureVerifier extends PublicKeyJwsSignatureVerifier {
+ public EcDsaJwsSignatureVerifier(PublicKey key) {
+ this(key, null);
+ }
+ public EcDsaJwsSignatureVerifier(PublicKey key, AlgorithmParameterSpec spec) {
+ super(key, spec);
+ }
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureProvider.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureProvider.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureProvider.java
index 77fc1f9..19fa062 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureProvider.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureProvider.java
@@ -26,8 +26,8 @@ import java.util.Set;
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.jwa.Algorithm;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
import org.apache.cxf.rs.security.oauth2.utils.crypto.HmacUtils;
public class HmacJwsSignatureProvider extends AbstractJwsSignatureProvider {
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureVerifier.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureVerifier.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureVerifier.java
index fed7e1f..d3274da 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureVerifier.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/HmacJwsSignatureVerifier.java
@@ -22,9 +22,9 @@ import java.security.spec.AlgorithmParameterSpec;
import java.util.Arrays;
import org.apache.cxf.common.util.Base64Exception;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.rs.security.jose.jwa.Algorithm;
import org.apache.cxf.rs.security.jose.jwt.JwtHeaders;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
import org.apache.cxf.rs.security.oauth2.utils.crypto.HmacUtils;
public class HmacJwsSignatureVerifier implements JwsSignatureVerifier {
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactConsumer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactConsumer.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactConsumer.java
index 6b14a1c..3449b8b 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactConsumer.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactConsumer.java
@@ -21,12 +21,11 @@ package org.apache.cxf.rs.security.jose.jws;
import java.io.UnsupportedEncodingException;
import org.apache.cxf.common.util.Base64Exception;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.rs.security.jose.JoseHeadersReader;
import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
import org.apache.cxf.rs.security.jose.jwk.JsonWebKey;
-import org.apache.cxf.rs.security.jose.jwt.JwtTokenReader;
import org.apache.cxf.rs.security.oauth2.provider.OAuthServiceException;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
public class JwsCompactConsumer {
private JoseHeadersReader reader = new JoseHeadersReaderWriter();
@@ -34,21 +33,13 @@ public class JwsCompactConsumer {
private String encodedSignature;
private String headersJson;
private String jwsPayload;
- private JwsSignatureProperties props;
public JwsCompactConsumer(String encodedJws) {
- this(encodedJws, null, null);
+ this(encodedJws, null);
}
- public JwsCompactConsumer(String encodedJws, JwsSignatureProperties props) {
- this(encodedJws, props, null);
- }
- public JwsCompactConsumer(String encodedJws, JwtTokenReader r) {
- this(encodedJws, null, r);
- }
- public JwsCompactConsumer(String encodedJws, JwsSignatureProperties props, JoseHeadersReader r) {
+ public JwsCompactConsumer(String encodedJws, JoseHeadersReader r) {
if (r != null) {
this.reader = r;
}
- this.props = props;
String[] parts = encodedJws.split("\\.");
if (parts.length != 3) {
if (parts.length == 2 && encodedJws.endsWith(".")) {
@@ -87,10 +78,9 @@ public class JwsCompactConsumer {
return encodedSignature.isEmpty() ? new byte[]{} : decode(encodedSignature);
}
public JwsHeaders getJwsHeaders() {
- return new JwsHeaders(getReader().fromJsonHeaders(headersJson).asMap());
+ return new JwsHeaders(getReader().fromJsonHeaders(headersJson));
}
public boolean verifySignatureWith(JwsSignatureVerifier validator) {
- enforceJweSignatureProperties();
if (!validator.verify(getJwsHeaders(), getUnsignedEncodedPayload(), getDecodedSignature())) {
throw new SecurityException();
}
@@ -99,11 +89,6 @@ public class JwsCompactConsumer {
public boolean verifySignatureWith(JsonWebKey key) {
return verifySignatureWith(JwsUtils.getSignatureVerifier(key));
}
- private void enforceJweSignatureProperties() {
- if (props != null) {
- //TODO:
- }
- }
private static String decodeToString(String encoded) {
try {
return new String(decode(encoded), "UTF-8");
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
index 509934b..307cf26 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
@@ -18,12 +18,12 @@
*/
package org.apache.cxf.rs.security.jose.jws;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.rs.security.jose.JoseConstants;
import org.apache.cxf.rs.security.jose.JoseHeadersReaderWriter;
import org.apache.cxf.rs.security.jose.JoseHeadersWriter;
import org.apache.cxf.rs.security.jose.jwk.JsonWebKey;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
public class JwsCompactProducer {
private JoseHeadersWriter writer = new JoseHeadersReaderWriter();
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsHeaders.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsHeaders.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsHeaders.java
index c8f9460..8ef08a6 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsHeaders.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsHeaders.java
@@ -20,12 +20,17 @@ package org.apache.cxf.rs.security.jose.jws;
import java.util.Map;
+import org.apache.cxf.rs.security.jose.JoseHeaders;
import org.apache.cxf.rs.security.jose.jwt.JwtHeaders;
public class JwsHeaders extends JwtHeaders {
public JwsHeaders() {
}
+ public JwsHeaders(JoseHeaders headers) {
+ super(headers.asMap());
+ }
+
public JwsHeaders(Map<String, Object> values) {
super(values);
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactConsumer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactConsumer.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactConsumer.java
index e395dc7..61138af 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactConsumer.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsJwtCompactConsumer.java
@@ -27,16 +27,10 @@ import org.apache.cxf.rs.security.jose.jwt.JwtTokenReaderWriter;
public class JwsJwtCompactConsumer extends JwsCompactConsumer {
private JwtToken token;
public JwsJwtCompactConsumer(String encodedJws) {
- this(encodedJws, null, null);
- }
- public JwsJwtCompactConsumer(String encodedJws, JwsSignatureProperties props) {
- this(encodedJws, props, null);
+ this(encodedJws, null);
}
public JwsJwtCompactConsumer(String encodedJws, JwtTokenReader r) {
- this(encodedJws, null, r);
- }
- public JwsJwtCompactConsumer(String encodedJws, JwsSignatureProperties props, JwtTokenReader r) {
- super(encodedJws, props, r == null ? new JwtTokenReaderWriter() : r);
+ super(encodedJws, r == null ? new JwtTokenReaderWriter() : r);
}
public JwtTokenJson getDecodedJsonToken() {
return new JwtTokenJson(getDecodedJsonHeaders(), getDecodedJwsPayload());
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsOutputStream.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsOutputStream.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsOutputStream.java
index bfb093f..f10f30c 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsOutputStream.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsOutputStream.java
@@ -23,7 +23,7 @@ import java.io.IOException;
import java.io.OutputStream;
import java.nio.ByteBuffer;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
+import org.apache.cxf.common.util.Base64UrlUtility;
public class JwsOutputStream extends FilterOutputStream {
private boolean flushed;
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsSignatureProperties.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsSignatureProperties.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsSignatureProperties.java
deleted file mode 100644
index e07f559..0000000
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsSignatureProperties.java
+++ /dev/null
@@ -1,23 +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.jws;
-
-
-public class JwsSignatureProperties {
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java
index e46f579..1076134 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java
@@ -59,7 +59,7 @@ public final class JwsUtils {
theVerifier =
new HmacJwsSignatureVerifier((String)jwk.getProperty(JsonWebKey.OCTET_KEY_VALUE));
} else if (JsonWebKey.KEY_TYPE_ELLIPTIC.equals(jwk.getKeyType())) {
- theVerifier = new PublicKeyJwsSignatureVerifier(JwkUtils.toECPublicKey(jwk));
+ theVerifier = new EcDsaJwsSignatureVerifier(JwkUtils.toECPublicKey(jwk));
}
return theVerifier;
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenReaderWriter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenReaderWriter.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenReaderWriter.java
index d7819e6..d3e7db4 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenReaderWriter.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/JwtTokenReaderWriter.java
@@ -47,7 +47,7 @@ public class JwtTokenReaderWriter extends JoseHeadersReaderWriter
}
private JwtToken fromJson(String headersJson, String claimsJson) {
- JwtHeaders headers = new JwtHeaders(fromJsonHeaders(headersJson));
+ JwtHeaders headers = fromJsonHeaders(headersJson);
JwtClaims claims = fromJsonClaims(claimsJson);
return new JwtToken(headers, claims);
}
@@ -56,4 +56,9 @@ public class JwtTokenReaderWriter extends JoseHeadersReaderWriter
public JwtToken fromJson(JwtTokenJson pair) {
return fromJson(pair.getHeadersJson(), pair.getClaimsJson());
}
+
+ @Override
+ public JwtHeaders fromJsonHeaders(String jsonHeaders) {
+ return new JwtHeaders(super.fromJsonHeaders(jsonHeaders));
+ }
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/grant/AbstractJwtBearerGrant.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/grant/AbstractJwtBearerGrant.java b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/grant/AbstractJwtBearerGrant.java
index 4572b30..f5705ae 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/grant/AbstractJwtBearerGrant.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/main/java/org/apache/cxf/rs/security/jose/jwt/grant/AbstractJwtBearerGrant.java
@@ -20,10 +20,10 @@ package org.apache.cxf.rs.security.jose.jwt.grant;
import javax.ws.rs.core.MultivaluedMap;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.jaxrs.impl.MetadataMap;
import org.apache.cxf.rs.security.oauth2.common.AccessTokenGrant;
import org.apache.cxf.rs.security.oauth2.provider.OAuthServiceException;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
import org.apache.cxf.rs.security.oauth2.utils.OAuthConstants;
public abstract class AbstractJwtBearerGrant implements AccessTokenGrant {
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JweCompactReaderWriterTest.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JweCompactReaderWriterTest.java b/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JweCompactReaderWriterTest.java
index f78b1e9..28cd22c 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JweCompactReaderWriterTest.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JweCompactReaderWriterTest.java
@@ -25,10 +25,10 @@ import java.security.interfaces.RSAPublicKey;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.rs.security.jose.JoseConstants;
import org.apache.cxf.rs.security.jose.jwa.Algorithm;
import org.apache.cxf.rs.security.jose.jws.JwsCompactReaderWriterTest;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
import org.apache.cxf.rs.security.oauth2.utils.crypto.CryptoUtils;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JwePbeHmacAesWrapTest.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JwePbeHmacAesWrapTest.java b/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JwePbeHmacAesWrapTest.java
index 68177aa..4b059c4 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JwePbeHmacAesWrapTest.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jwe/JwePbeHmacAesWrapTest.java
@@ -70,7 +70,7 @@ public class JwePbeHmacAesWrapTest extends Assert {
new AesGcmContentEncryptionAlgorithm(Algorithm.A128GCM.getJwtName()));
String jweContent = encryption.encrypt(specPlainText.getBytes("UTF-8"), null);
PbesHmacAesWrapKeyDecryptionAlgorithm keyDecryption = new PbesHmacAesWrapKeyDecryptionAlgorithm(password);
- JweDecryptionProvider decryption = new WrappedKeyJweDecryption(keyDecryption, null, null);
+ JweDecryptionProvider decryption = new WrappedKeyJweDecryption(keyDecryption);
String decryptedText = decryption.decrypt(jweContent).getContentText();
assertEquals(specPlainText, decryptedText);
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java b/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java
index a673029..5f287f3 100644
--- a/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java
+++ b/rt/rs/security/oauth-parent/oauth2-jose/src/test/java/org/apache/cxf/rs/security/jose/jws/JwsCompactReaderWriterTest.java
@@ -218,7 +218,7 @@ public class JwsCompactReaderWriterTest extends Assert {
EC_X_POINT_ENCODED,
EC_Y_POINT_ENCODED);
JwsJwtCompactConsumer jwsConsumer = new JwsJwtCompactConsumer(signedJws);
- assertTrue(jwsConsumer.verifySignatureWith(new PublicKeyJwsSignatureVerifier(publicKey)));
+ assertTrue(jwsConsumer.verifySignatureWith(new EcDsaJwsSignatureVerifier(publicKey)));
JwtToken token = jwsConsumer.getJwtToken();
JwtHeaders headersReceived = token.getHeaders();
assertEquals(Algorithm.SHA256withECDSA.getJwtName(), headersReceived.getAlgorithm());
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/auth/saml/Saml2BearerAuthHandler.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/auth/saml/Saml2BearerAuthHandler.java b/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/auth/saml/Saml2BearerAuthHandler.java
index e558534..1616c67 100644
--- a/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/auth/saml/Saml2BearerAuthHandler.java
+++ b/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/auth/saml/Saml2BearerAuthHandler.java
@@ -29,6 +29,7 @@ import javax.ws.rs.core.MultivaluedMap;
import org.w3c.dom.Element;
import org.apache.cxf.common.util.Base64Exception;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.jaxrs.provider.FormEncodingProvider;
import org.apache.cxf.jaxrs.utils.ExceptionUtils;
import org.apache.cxf.jaxrs.utils.FormUtils;
@@ -37,7 +38,6 @@ import org.apache.cxf.jaxrs.utils.JAXRSUtils;
import org.apache.cxf.message.Message;
import org.apache.cxf.rs.security.oauth2.saml.Constants;
import org.apache.cxf.rs.security.oauth2.saml.SamlOAuthValidator;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
import org.apache.cxf.rs.security.oauth2.utils.OAuthConstants;
import org.apache.cxf.rs.security.saml.AbstractSamlInHandler;
import org.apache.cxf.rs.security.saml.SAMLUtils;
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/auth/saml/Saml2BearerAuthOutInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/auth/saml/Saml2BearerAuthOutInterceptor.java b/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/auth/saml/Saml2BearerAuthOutInterceptor.java
index 5310082..1daef77 100644
--- a/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/auth/saml/Saml2BearerAuthOutInterceptor.java
+++ b/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/auth/saml/Saml2BearerAuthOutInterceptor.java
@@ -21,8 +21,8 @@ package org.apache.cxf.rs.security.oauth2.auth.saml;
import javax.ws.rs.core.Form;
import org.apache.cxf.common.util.Base64Exception;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.rs.security.oauth2.saml.Constants;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
import org.apache.cxf.rs.security.saml.SamlFormOutInterceptor;
public class Saml2BearerAuthOutInterceptor extends SamlFormOutInterceptor {
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/grants/saml/AbstractSaml2BearerGrant.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/grants/saml/AbstractSaml2BearerGrant.java b/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/grants/saml/AbstractSaml2BearerGrant.java
index 490aab6..c1f405f 100644
--- a/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/grants/saml/AbstractSaml2BearerGrant.java
+++ b/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/grants/saml/AbstractSaml2BearerGrant.java
@@ -20,10 +20,10 @@ package org.apache.cxf.rs.security.oauth2.grants.saml;
import javax.ws.rs.core.MultivaluedMap;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.jaxrs.impl.MetadataMap;
import org.apache.cxf.rs.security.oauth2.common.AccessTokenGrant;
import org.apache.cxf.rs.security.oauth2.provider.OAuthServiceException;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
import org.apache.cxf.rs.security.oauth2.utils.OAuthConstants;
public abstract class AbstractSaml2BearerGrant implements AccessTokenGrant {
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/grants/saml/Saml2BearerGrantHandler.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/grants/saml/Saml2BearerGrantHandler.java b/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/grants/saml/Saml2BearerGrantHandler.java
index b018147..3be0905 100644
--- a/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/grants/saml/Saml2BearerGrantHandler.java
+++ b/rt/rs/security/oauth-parent/oauth2-saml/src/main/java/org/apache/cxf/rs/security/oauth2/grants/saml/Saml2BearerGrantHandler.java
@@ -33,7 +33,9 @@ import javax.ws.rs.core.MultivaluedMap;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+
import org.apache.cxf.common.util.Base64Exception;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.jaxrs.utils.HttpUtils;
import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageUtils;
@@ -47,7 +49,6 @@ import org.apache.cxf.rs.security.oauth2.grants.AbstractGrantHandler;
import org.apache.cxf.rs.security.oauth2.provider.OAuthServiceException;
import org.apache.cxf.rs.security.oauth2.saml.Constants;
import org.apache.cxf.rs.security.oauth2.saml.SamlOAuthValidator;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
import org.apache.cxf.rs.security.oauth2.utils.OAuthConstants;
import org.apache.cxf.rs.security.oauth2.utils.OAuthUtils;
import org.apache.cxf.rs.security.saml.authorization.SecurityContextProvider;
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/code/DigestCodeVerifier.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/code/DigestCodeVerifier.java b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/code/DigestCodeVerifier.java
index 1918597..06f55fb 100644
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/code/DigestCodeVerifier.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/code/DigestCodeVerifier.java
@@ -18,7 +18,7 @@
*/
package org.apache.cxf.rs.security.oauth2.grants.code;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.rs.security.oauth2.utils.MessageDigestUtils;
public class DigestCodeVerifier implements CodeVerifierTransformer {
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/Base64UrlUtility.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/Base64UrlUtility.java b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/Base64UrlUtility.java
deleted file mode 100644
index 9433b97..0000000
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/Base64UrlUtility.java
+++ /dev/null
@@ -1,74 +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.oauth2.utils;
-
-/**
- * Base64 URL Encoding/Decoding utility.
- *
- * Character 62 ('+') is '-', Character 63 ('/') is '_';
- * Padding characters are dropped after the encoding.
- *
- */
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-
-import org.apache.cxf.common.util.Base64Exception;
-import org.apache.cxf.common.util.Base64Utility;
-
-
-public final class Base64UrlUtility {
- private Base64UrlUtility() {
- //utility class, never constructed
- }
-
- public static byte[] decode(String encoded) throws Base64Exception {
- return Base64Utility.decode(encoded, true);
- }
-
- public static String encode(String str) {
- try {
- return encode(str.getBytes("UTF-8"));
- } catch (UnsupportedEncodingException ex) {
- throw new RuntimeException(ex);
- }
- }
-
- public static String encode(byte[] id) {
- return encodeChunk(id, 0, id.length);
- }
-
- public static String encodeChunk(byte[] id, int offset, int length) {
- char[] chunk = Base64Utility.encodeChunk(id, offset, length, true);
- if (chunk != null) {
- return new String(chunk);
- } else {
- return null;
- }
- }
-
- public static void encodeAndStream(byte[] id,
- int o,
- int l,
- OutputStream os) throws IOException {
- Base64Utility.encodeAndStream(id, o, l, true, os);
- }
-}
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/crypto/CryptoUtils.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/crypto/CryptoUtils.java b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/crypto/CryptoUtils.java
index 3001b4b..94fbcf4 100644
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/crypto/CryptoUtils.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/crypto/CryptoUtils.java
@@ -59,12 +59,12 @@ import javax.crypto.spec.SecretKeySpec;
import org.apache.cxf.Bus;
import org.apache.cxf.common.classloader.ClassLoaderUtils;
import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.common.util.CompressionUtils;
import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.jaxrs.utils.ResourceUtils;
import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageUtils;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
import org.apache.cxf.security.SecurityContext;
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/crypto/HmacUtils.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/crypto/HmacUtils.java b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/crypto/HmacUtils.java
index 7b1dc78..6dd310d 100644
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/crypto/HmacUtils.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/utils/crypto/HmacUtils.java
@@ -31,9 +31,9 @@ import javax.crypto.KeyGenerator;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.common.util.Base64Utility;
import org.apache.cxf.rs.security.oauth2.provider.OAuthServiceException;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
public final class HmacUtils {
http://git-wip-us.apache.org/repos/asf/cxf/blob/45480170/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/oauth2/JAXRSOAuth2Test.java
----------------------------------------------------------------------
diff --git a/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/oauth2/JAXRSOAuth2Test.java b/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/oauth2/JAXRSOAuth2Test.java
index 1e84646..0a4f079 100644
--- a/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/oauth2/JAXRSOAuth2Test.java
+++ b/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/oauth2/JAXRSOAuth2Test.java
@@ -28,6 +28,7 @@ import javax.ws.rs.core.MultivaluedMap;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBusFactory;
+import org.apache.cxf.common.util.Base64UrlUtility;
import org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean;
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.cxf.jaxrs.impl.MetadataMap;
@@ -38,7 +39,6 @@ import org.apache.cxf.rs.security.oauth2.common.AccessTokenGrant;
import org.apache.cxf.rs.security.oauth2.common.ClientAccessToken;
import org.apache.cxf.rs.security.oauth2.grants.saml.Saml2BearerGrant;
import org.apache.cxf.rs.security.oauth2.saml.Constants;
-import org.apache.cxf.rs.security.oauth2.utils.Base64UrlUtility;
import org.apache.cxf.rs.security.oauth2.utils.OAuthConstants;
import org.apache.cxf.rs.security.saml.SAMLUtils;
import org.apache.cxf.rs.security.saml.SAMLUtils.SelfSignInfo;