You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2017/09/26 17:01:57 UTC

[cxf-fediz] branch master updated: Move to use Java 8's Base64 implementation

This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf-fediz.git


The following commit(s) were added to refs/heads/master by this push:
     new 1744007  Move to use Java 8's Base64 implementation
1744007 is described below

commit 174400758003adabe7510fde2ab78d3dd6d65c13
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Tue Sep 26 18:01:42 2017 +0100

    Move to use Java 8's Base64 implementation
---
 .../cxf/fediz/core/metadata/MetadataWriter.java    |  4 ++--
 .../fediz/core/processor/SAMLProcessorImpl.java    | 11 ++++------
 .../org/apache/cxf/fediz/core/util/CertsUtils.java |  9 ++++----
 .../cxf/fediz/core/samlsso/SAMLRequestTest.java    |  6 +++---
 .../core/samlsso/SAMLResponseConformanceTest.java  |  4 ++--
 .../cxf/fediz/core/samlsso/SAMLResponseTest.java   |  6 +++---
 .../idp/beans/samlsso/AuthnRequestParser.java      |  4 ++--
 .../idp/kerberos/PassThroughKerberosClient.java    |  4 ++--
 .../service/idp/metadata/IdpMetadataWriter.java    |  6 +++---
 .../idp/metadata/ServiceMetadataWriter.java        |  4 ++--
 .../protocols/TrustedIdpOIDCProtocolHandler.java   |  4 +---
 .../protocols/TrustedIdpSAMLProtocolHandler.java   |  4 ++--
 .../service/idp/integrationtests/RestITTest.java   |  4 ++--
 .../org/apache/cxf/fediz/systests/idp/IdpTest.java |  8 +++++---
 .../cxf/fediz/systests/kerberos/KerberosTest.java  |  4 ++--
 .../apache/cxf/fediz/systests/oidc/OIDCTest.java   |  5 +++--
 .../apache/cxf/fediz/systests/samlsso/IdpTest.java | 24 +++++++++++++---------
 17 files changed, 56 insertions(+), 55 deletions(-)

diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/metadata/MetadataWriter.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/metadata/MetadataWriter.java
index 5f5d121..7d7bcc4 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/metadata/MetadataWriter.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/metadata/MetadataWriter.java
@@ -28,6 +28,7 @@ import java.net.MalformedURLException;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.security.cert.X509Certificate;
+import java.util.Base64;
 import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
@@ -47,7 +48,6 @@ import org.apache.cxf.fediz.core.util.CertsUtils;
 import org.apache.cxf.fediz.core.util.DOMUtils;
 import org.apache.cxf.fediz.core.util.SignatureUtils;
 import org.apache.xml.security.stax.impl.util.IDGenerator;
-import org.apache.xml.security.utils.Base64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -303,7 +303,7 @@ public class MetadataWriter {
                         + keyAlias);
             }
             byte data[] = cert.getEncoded();
-            String encodedCertificate = Base64.encode(data);
+            String encodedCertificate = Base64.getEncoder().encodeToString(data);
             writer.writeCharacters(encodedCertificate);
 
             writer.writeEndElement(); // X509Certificate
diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/processor/SAMLProcessorImpl.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/processor/SAMLProcessorImpl.java
index 7b2abc9..60cf3ac 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/processor/SAMLProcessorImpl.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/processor/SAMLProcessorImpl.java
@@ -26,6 +26,7 @@ import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.security.PrivateKey;
 import java.security.Signature;
+import java.util.Base64;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
@@ -58,8 +59,6 @@ import org.apache.wss4j.common.saml.OpenSAMLUtil;
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
 import org.apache.wss4j.common.util.DOM2Writer;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.xml.security.exceptions.Base64DecodingException;
-import org.apache.xml.security.utils.Base64;
 import org.opensaml.core.xml.XMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AuthnRequest;
@@ -128,7 +127,7 @@ public class SAMLProcessorImpl extends AbstractFedizProcessor {
 
         InputStream tokenStream = null;
         try {
-            byte[] deflatedToken = Base64.decode(request.getResponseToken());
+            byte[] deflatedToken = Base64.getDecoder().decode(request.getResponseToken());
             if (protocol.isDisableDeflateEncoding()) {
                 tokenStream = new ByteArrayInputStream(deflatedToken);
             } else {
@@ -136,8 +135,6 @@ public class SAMLProcessorImpl extends AbstractFedizProcessor {
             }
         } catch (DataFormatException ex) {
             throw new ProcessingException(TYPE.INVALID_REQUEST);
-        } catch (Base64DecodingException e) {
-            throw new ProcessingException(TYPE.INVALID_REQUEST);
         }
 
         Document doc = null;
@@ -399,7 +396,7 @@ public class SAMLProcessorImpl extends AbstractFedizProcessor {
         signature.update(requestToSign.getBytes(StandardCharsets.UTF_8));
         byte[] signBytes = signature.sign();
 
-        String encodedSignature = Base64.encode(signBytes);
+        String encodedSignature = Base64.getEncoder().encodeToString(signBytes);
 
         return URLEncoder.encode(encodedSignature, "UTF-8");
     }
@@ -409,7 +406,7 @@ public class SAMLProcessorImpl extends AbstractFedizProcessor {
 
         byte[] deflatedBytes = CompressionUtils.deflate(requestMessage.getBytes(StandardCharsets.UTF_8));
 
-        return Base64.encode(deflatedBytes);
+        return Base64.getEncoder().encodeToString(deflatedBytes);
     }
 
     @Override
diff --git a/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/CertsUtils.java b/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/CertsUtils.java
index f1a2882..83b329d 100644
--- a/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/CertsUtils.java
+++ b/plugins/core/src/main/java/org/apache/cxf/fediz/core/util/CertsUtils.java
@@ -27,6 +27,7 @@ import java.security.cert.Certificate;
 import java.security.cert.CertificateException;
 import java.security.cert.CertificateFactory;
 import java.security.cert.X509Certificate;
+import java.util.Base64;
 import java.util.Collections;
 import java.util.Properties;
 
@@ -37,8 +38,6 @@ import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.crypto.CryptoType;
 import org.apache.wss4j.common.crypto.Merlin;
 import org.apache.wss4j.common.ext.WSSecurityException;
-import org.apache.xml.security.exceptions.Base64DecodingException;
-import org.apache.xml.security.utils.Base64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -130,7 +129,7 @@ public final class CertsUtils {
      * a filename containing the certificate.
      */
     public static X509Certificate parseX509Certificate(String certificate)
-        throws CertificateException, WSSecurityException, ProcessingException, Base64DecodingException, IOException {
+        throws CertificateException, WSSecurityException, ProcessingException, IOException {
         if (certificate == null) {
             return null;
         }
@@ -212,10 +211,10 @@ public final class CertsUtils {
     }
 
     private static X509Certificate parseCertificate(String certificate)
-        throws CertificateException, Base64DecodingException, IOException {
+        throws CertificateException, IOException {
 
         //before decoding we need to get rid off the prefix and suffix
-        byte[] decoded = Base64.decode(certificate.replaceAll("-----BEGIN CERTIFICATE-----", "").
+        byte[] decoded = Base64.getDecoder().decode(certificate.replaceAll("-----BEGIN CERTIFICATE-----", "").
                                         replaceAll("-----END CERTIFICATE-----", ""));
 
         try (InputStream is = new ByteArrayInputStream(decoded)) {
diff --git a/plugins/core/src/test/java/org/apache/cxf/fediz/core/samlsso/SAMLRequestTest.java b/plugins/core/src/test/java/org/apache/cxf/fediz/core/samlsso/SAMLRequestTest.java
index 517f874..0455be8 100644
--- a/plugins/core/src/test/java/org/apache/cxf/fediz/core/samlsso/SAMLRequestTest.java
+++ b/plugins/core/src/test/java/org/apache/cxf/fediz/core/samlsso/SAMLRequestTest.java
@@ -25,6 +25,7 @@ import java.io.InputStreamReader;
 import java.net.URL;
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
+import java.util.Base64;
 import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
@@ -41,7 +42,6 @@ import org.apache.cxf.fediz.core.processor.RedirectionResponse;
 import org.apache.cxf.fediz.core.processor.SAMLProcessorImpl;
 import org.apache.cxf.fediz.core.util.DOMUtils;
 import org.apache.wss4j.common.saml.OpenSAMLUtil;
-import org.apache.xml.security.utils.Base64;
 import org.easymock.EasyMock;
 import org.junit.AfterClass;
 import org.junit.Assert;
@@ -170,7 +170,7 @@ public class SAMLRequestTest {
             redirectionURL.substring(redirectionURL.indexOf("SAMLRequest=") + "SAMLRequest=".length(),
                                      redirectionURL.indexOf("RelayState=") - 1);
 
-        byte[] deflatedToken = Base64.decode(URLDecoder.decode(samlRequest, "UTF-8"));
+        byte[] deflatedToken = Base64.getDecoder().decode(URLDecoder.decode(samlRequest, "UTF-8"));
         InputStream tokenStream = CompressionUtils.inflate(deflatedToken);
 
         Document requestDoc = DOMUtils.readXml(new InputStreamReader(tokenStream, StandardCharsets.UTF_8));
@@ -220,7 +220,7 @@ public class SAMLRequestTest {
             redirectionURL.substring(redirectionURL.indexOf("SAMLRequest=") + "SAMLRequest=".length(),
                                      redirectionURL.indexOf("RelayState=") - 1);
 
-        byte[] deflatedToken = Base64.decode(URLDecoder.decode(samlRequest, "UTF-8"));
+        byte[] deflatedToken = Base64.getDecoder().decode(URLDecoder.decode(samlRequest, "UTF-8"));
         InputStream tokenStream = CompressionUtils.inflate(deflatedToken);
 
         Document requestDoc = DOMUtils.readXml(new InputStreamReader(tokenStream, StandardCharsets.UTF_8));
diff --git a/plugins/core/src/test/java/org/apache/cxf/fediz/core/samlsso/SAMLResponseConformanceTest.java b/plugins/core/src/test/java/org/apache/cxf/fediz/core/samlsso/SAMLResponseConformanceTest.java
index aa11e6c..870af0b 100644
--- a/plugins/core/src/test/java/org/apache/cxf/fediz/core/samlsso/SAMLResponseConformanceTest.java
+++ b/plugins/core/src/test/java/org/apache/cxf/fediz/core/samlsso/SAMLResponseConformanceTest.java
@@ -24,6 +24,7 @@ import java.io.IOException;
 import java.net.URL;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
+import java.util.Base64;
 import java.util.Collections;
 import java.util.UUID;
 
@@ -63,7 +64,6 @@ import org.apache.wss4j.common.saml.bean.ConditionsBean;
 import org.apache.wss4j.common.saml.bean.SubjectConfirmationDataBean;
 import org.apache.wss4j.common.saml.builder.SAML2Constants;
 import org.apache.wss4j.common.util.DOM2Writer;
-import org.apache.xml.security.utils.Base64;
 import org.easymock.EasyMock;
 import org.joda.time.DateTime;
 import org.junit.AfterClass;
@@ -1220,7 +1220,7 @@ public class SAMLResponseConformanceTest {
 
         byte[] deflatedBytes = CompressionUtils.deflate(responseMessage.getBytes(StandardCharsets.UTF_8));
 
-        return Base64.encode(deflatedBytes);
+        return Base64.getEncoder().encodeToString(deflatedBytes);
     }
 
 
diff --git a/plugins/core/src/test/java/org/apache/cxf/fediz/core/samlsso/SAMLResponseTest.java b/plugins/core/src/test/java/org/apache/cxf/fediz/core/samlsso/SAMLResponseTest.java
index a0b3681..9cc88e1 100644
--- a/plugins/core/src/test/java/org/apache/cxf/fediz/core/samlsso/SAMLResponseTest.java
+++ b/plugins/core/src/test/java/org/apache/cxf/fediz/core/samlsso/SAMLResponseTest.java
@@ -25,6 +25,7 @@ import java.math.BigInteger;
 import java.net.URL;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
+import java.util.Base64;
 import java.util.Collections;
 import java.util.List;
 import java.util.UUID;
@@ -75,7 +76,6 @@ import org.apache.wss4j.common.saml.bean.SubjectConfirmationDataBean;
 import org.apache.wss4j.common.saml.builder.SAML2Constants;
 import org.apache.wss4j.common.util.DOM2Writer;
 import org.apache.wss4j.dom.WSConstants;
-import org.apache.xml.security.utils.Base64;
 import org.easymock.EasyMock;
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
@@ -220,7 +220,7 @@ public class SAMLResponseTest {
         EasyMock.replay(req);
 
         FedizRequest wfReq = new FedizRequest();
-        wfReq.setResponseToken(DOM2Writer.nodeToString(doc));
+        wfReq.setResponseToken(encodeResponse(doc.getDocumentElement()));
         wfReq.setState(relayState);
         wfReq.setRequest(req);
         wfReq.setRequestState(requestState);
@@ -1382,7 +1382,7 @@ public class SAMLResponseTest {
 
         byte[] deflatedBytes = CompressionUtils.deflate(responseMessage.getBytes(StandardCharsets.UTF_8));
 
-        return Base64.encode(deflatedBytes);
+        return Base64.getEncoder().encodeToString(deflatedBytes);
     }
 
 
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/samlsso/AuthnRequestParser.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/samlsso/AuthnRequestParser.java
index 92d0d7a..2c8ee5a 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/samlsso/AuthnRequestParser.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/beans/samlsso/AuthnRequestParser.java
@@ -24,6 +24,7 @@ import java.io.InputStreamReader;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.security.cert.X509Certificate;
+import java.util.Base64;
 import java.util.Collections;
 
 import org.w3c.dom.Document;
@@ -54,7 +55,6 @@ import org.apache.wss4j.dom.saml.WSSSAMLKeyInfoProcessor;
 import org.apache.wss4j.dom.validate.Credential;
 import org.apache.wss4j.dom.validate.SignatureTrustValidator;
 import org.apache.wss4j.dom.validate.Validator;
-import org.apache.xml.security.utils.Base64;
 import org.opensaml.saml.saml2.core.AuthnRequest;
 import org.opensaml.saml.security.impl.SAMLSignatureProfileValidator;
 import org.opensaml.security.credential.BasicCredential;
@@ -260,7 +260,7 @@ public class AuthnRequestParser {
 
                 sig.update(requestToSign.getBytes(StandardCharsets.UTF_8));
 
-                if (!sig.verify(Base64.decode(signature))) {
+                if (!sig.verify(Base64.getDecoder().decode(signature))) {
                     LOG.debug("Signature validation failed");
                     throw new ProcessingException(TYPE.BAD_REQUEST);
                 }
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/kerberos/PassThroughKerberosClient.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/kerberos/PassThroughKerberosClient.java
index 012b6da..f4878fe 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/kerberos/PassThroughKerberosClient.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/kerberos/PassThroughKerberosClient.java
@@ -20,6 +20,7 @@
 package org.apache.cxf.fediz.service.idp.kerberos;
 
 import java.util.Arrays;
+import java.util.Base64;
 
 import org.apache.cxf.fediz.core.util.DOMUtils;
 import org.apache.cxf.ws.security.kerberos.KerberosClient;
@@ -28,7 +29,6 @@ import org.apache.wss4j.common.util.KeyUtils;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.wss4j.dom.message.token.KerberosSecurity;
-import org.apache.xml.security.utils.Base64;
 
 /**
  * Override the default CXF KerberosClient just to create a BinarySecurityToken from a
@@ -55,7 +55,7 @@ public class PassThroughKerberosClient extends KerberosClient {
         securityToken.setToken(bst.getElement());
         securityToken.setWsuId(bst.getID());
         securityToken.setData(bst.getToken());
-        String sha1 = Base64.encode(KeyUtils.generateDigest(bst.getToken()));
+        String sha1 = Base64.getEncoder().encodeToString(KeyUtils.generateDigest(bst.getToken()));
         securityToken.setSHA1(sha1);
         securityToken.setTokenType(bst.getValueType());
 
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/metadata/IdpMetadataWriter.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/metadata/IdpMetadataWriter.java
index 44eb6cb..f47fb60 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/metadata/IdpMetadataWriter.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/metadata/IdpMetadataWriter.java
@@ -20,6 +20,7 @@
 package org.apache.cxf.fediz.service.idp.metadata;
 
 import java.security.cert.X509Certificate;
+import java.util.Base64;
 
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
@@ -33,7 +34,6 @@ import org.apache.cxf.staxutils.W3CDOMStreamWriter;
 import org.apache.wss4j.common.crypto.Crypto;
 import org.apache.wss4j.common.util.DOM2Writer;
 import org.apache.xml.security.stax.impl.util.IDGenerator;
-import org.apache.xml.security.utils.Base64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -133,7 +133,7 @@ public class IdpMetadataWriter {
         try {
             String keyAlias = crypto.getDefaultX509Identifier();
             X509Certificate cert = CertsUtils.getX509CertificateFromCrypto(crypto, keyAlias);
-            writer.writeCharacters(Base64.encode(cert.getEncoded()));
+            writer.writeCharacters(Base64.getEncoder().encodeToString(cert.getEncoded()));
         } catch (Exception ex) {
             LOG.error("Failed to add certificate information to metadata. Metadata incomplete", ex);
         }
@@ -204,7 +204,7 @@ public class IdpMetadataWriter {
         try {
             String keyAlias = crypto.getDefaultX509Identifier();
             X509Certificate cert = CertsUtils.getX509CertificateFromCrypto(crypto, keyAlias);
-            writer.writeCharacters(Base64.encode(cert.getEncoded()));
+            writer.writeCharacters(Base64.getEncoder().encodeToString(cert.getEncoded()));
         } catch (Exception ex) {
             LOG.error("Failed to add certificate information to metadata. Metadata incomplete", ex);
         }
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/metadata/ServiceMetadataWriter.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/metadata/ServiceMetadataWriter.java
index 815edf0..75adec7 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/metadata/ServiceMetadataWriter.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/metadata/ServiceMetadataWriter.java
@@ -20,6 +20,7 @@
 package org.apache.cxf.fediz.service.idp.metadata;
 
 import java.security.cert.X509Certificate;
+import java.util.Base64;
 import java.util.Map;
 
 import javax.xml.stream.XMLStreamException;
@@ -36,7 +37,6 @@ import org.apache.cxf.staxutils.W3CDOMStreamWriter;
 import org.apache.wss4j.common.crypto.Crypto;
 import org.apache.wss4j.common.util.DOM2Writer;
 import org.apache.xml.security.stax.impl.util.IDGenerator;
-import org.apache.xml.security.utils.Base64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -188,7 +188,7 @@ public class ServiceMetadataWriter {
                         + keyAlias);
             }
             byte data[] = cert.getEncoded();
-            String encodedCertificate = Base64.encode(data);
+            String encodedCertificate = Base64.getEncoder().encodeToString(data);
             writer.writeCharacters(encodedCertificate);
 
             writer.writeEndElement(); // X509Certificate
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpOIDCProtocolHandler.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpOIDCProtocolHandler.java
index 96d56e6..0751d39 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpOIDCProtocolHandler.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpOIDCProtocolHandler.java
@@ -59,7 +59,6 @@ import org.apache.cxf.rs.security.oauth2.utils.OAuthConstants;
 import org.apache.cxf.ws.security.tokenstore.SecurityToken;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
-import org.apache.xml.security.exceptions.Base64DecodingException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
@@ -267,8 +266,7 @@ public class TrustedIdpOIDCProtocolHandler extends AbstractTrustedIdpOAuth2Proto
     }
 
     private boolean validateSignature(TrustedIdp trustedIdp, JwsJwtCompactConsumer jwtConsumer)
-        throws CertificateException, WSSecurityException, Base64DecodingException,
-            ProcessingException, IOException {
+        throws CertificateException, WSSecurityException, ProcessingException, IOException {
 
         // Validate the Signature
         String sigAlgo = getProperty(trustedIdp, SIGNATURE_ALGORITHM);
diff --git a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpSAMLProtocolHandler.java b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpSAMLProtocolHandler.java
index 49728d1..b3371a0 100644
--- a/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpSAMLProtocolHandler.java
+++ b/services/idp-core/src/main/java/org/apache/cxf/fediz/service/idp/protocols/TrustedIdpSAMLProtocolHandler.java
@@ -31,6 +31,7 @@ import java.nio.charset.StandardCharsets;
 import java.security.PrivateKey;
 import java.security.Signature;
 import java.security.cert.X509Certificate;
+import java.util.Base64;
 import java.util.zip.DataFormatException;
 
 import javax.servlet.http.HttpServletRequest;
@@ -67,7 +68,6 @@ import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.saml.OpenSAMLUtil;
 import org.apache.wss4j.common.util.DOM2Writer;
 import org.apache.xml.security.stax.impl.util.IDGenerator;
-import org.apache.xml.security.utils.Base64;
 import org.opensaml.core.xml.XMLObject;
 import org.opensaml.saml.saml2.core.AuthnRequest;
 import org.slf4j.Logger;
@@ -279,7 +279,7 @@ public class TrustedIdpSAMLProtocolHandler extends AbstractTrustedIdpProtocolHan
         signature.update(requestToSign.getBytes(StandardCharsets.UTF_8));
         byte[] signBytes = signature.sign();
 
-        String encodedSignature = Base64.encode(signBytes);
+        String encodedSignature = Base64.getEncoder().encodeToString(signBytes);
 
         ub.queryParam(SSOConstants.SIGNATURE, URLEncoder.encode(encodedSignature, "UTF-8"));
     }
diff --git a/services/idp/src/test/java/org/apache/cxf/fediz/service/idp/integrationtests/RestITTest.java b/services/idp/src/test/java/org/apache/cxf/fediz/service/idp/integrationtests/RestITTest.java
index cc7f090..7e6614f 100644
--- a/services/idp/src/test/java/org/apache/cxf/fediz/service/idp/integrationtests/RestITTest.java
+++ b/services/idp/src/test/java/org/apache/cxf/fediz/service/idp/integrationtests/RestITTest.java
@@ -22,6 +22,7 @@ import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URL;
+import java.util.Base64;
 
 import javax.ws.rs.client.Client;
 import javax.ws.rs.client.ClientBuilder;
@@ -39,7 +40,6 @@ import org.apache.cxf.fediz.service.idp.rest.Claims;
 import org.apache.cxf.fediz.service.idp.rest.Entitlements;
 import org.apache.cxf.fediz.service.idp.rest.Idps;
 import org.apache.cxf.fediz.service.idp.rest.Roles;
-import org.apache.xml.security.utils.Base64;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -248,7 +248,7 @@ public class RestITTest {
 
     private String getBasicAuthentication(String username, String password) throws UnsupportedEncodingException {
         String token = username + ":" + password;
-        return "Basic " + Base64.encode(token.getBytes());
+        return "Basic " + Base64.getEncoder().encodeToString(token.getBytes());
     }
 
     private String getContextName() {
diff --git a/systests/idp/src/test/java/org/apache/cxf/fediz/systests/idp/IdpTest.java b/systests/idp/src/test/java/org/apache/cxf/fediz/systests/idp/IdpTest.java
index 08450ea..4a3bfab 100644
--- a/systests/idp/src/test/java/org/apache/cxf/fediz/systests/idp/IdpTest.java
+++ b/systests/idp/src/test/java/org/apache/cxf/fediz/systests/idp/IdpTest.java
@@ -23,6 +23,7 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URLEncoder;
+import java.util.Base64;
 
 import javax.servlet.ServletException;
 
@@ -52,7 +53,6 @@ import org.apache.http.auth.UsernamePasswordCredentials;
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.xml.security.keys.KeyInfo;
 import org.apache.xml.security.signature.XMLSignature;
-import org.apache.xml.security.utils.Base64;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -204,7 +204,8 @@ public class IdpTest {
 
         final WebClient webClient = new WebClient();
         webClient.getOptions().setUseInsecureSSL(true);
-        webClient.addRequestHeader("Authorization", "Basic " + Base64.encode((user + ":" + password).getBytes()));
+        webClient.addRequestHeader("Authorization", "Basic "
+            + Base64.getEncoder().encodeToString((user + ":" + password).getBytes()));
 
         //
         // First invocation
@@ -233,7 +234,8 @@ public class IdpTest {
         //
 
         webClient.removeRequestHeader("Authorization");
-        webClient.addRequestHeader("Authorization", "Basic " + Base64.encode(("mallory" + ":" + password).getBytes()));
+        webClient.addRequestHeader("Authorization", "Basic "
+            + Base64.getEncoder().encodeToString(("mallory" + ":" + password).getBytes()));
 
         webClient.getOptions().setJavaScriptEnabled(false);
         idpPage = webClient.getPage(url);
diff --git a/systests/kerberos/src/test/java/org/apache/cxf/fediz/systests/kerberos/KerberosTest.java b/systests/kerberos/src/test/java/org/apache/cxf/fediz/systests/kerberos/KerberosTest.java
index e95cd5c..47f6e62 100644
--- a/systests/kerberos/src/test/java/org/apache/cxf/fediz/systests/kerberos/KerberosTest.java
+++ b/systests/kerberos/src/test/java/org/apache/cxf/fediz/systests/kerberos/KerberosTest.java
@@ -23,6 +23,7 @@ package org.apache.cxf.fediz.systests.kerberos;
 import java.io.File;
 import java.io.IOException;
 import java.security.PrivilegedExceptionAction;
+import java.util.Base64;
 
 import javax.security.auth.Subject;
 import javax.security.auth.login.LoginContext;
@@ -42,7 +43,6 @@ import org.apache.cxf.fediz.core.ClaimTypes;
 import org.apache.cxf.fediz.tomcat8.FederationAuthenticator;
 import org.apache.kerby.kerberos.kerb.server.SimpleKdcServer;
 import org.apache.wss4j.dom.engine.WSSConfig;
-import org.apache.xml.security.utils.Base64;
 import org.ietf.jgss.GSSContext;
 import org.ietf.jgss.GSSException;
 import org.ietf.jgss.GSSManager;
@@ -313,7 +313,7 @@ public class KerberosTest extends org.junit.Assert {
         lc.login();
 
         byte[] ticket = (byte[])Subject.doAs(lc.getSubject(), new CreateServiceTicketAction(context, token));
-        return Base64.encode(ticket);
+        return Base64.getEncoder().encodeToString(ticket);
     }
 
     private final class CreateServiceTicketAction implements PrivilegedExceptionAction<byte[]> {
diff --git a/systests/oidc/src/test/java/org/apache/cxf/fediz/systests/oidc/OIDCTest.java b/systests/oidc/src/test/java/org/apache/cxf/fediz/systests/oidc/OIDCTest.java
index 401a4ce..7852f3f 100644
--- a/systests/oidc/src/test/java/org/apache/cxf/fediz/systests/oidc/OIDCTest.java
+++ b/systests/oidc/src/test/java/org/apache/cxf/fediz/systests/oidc/OIDCTest.java
@@ -34,6 +34,7 @@ import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Base64;
 import java.util.Date;
 import java.util.List;
 import java.util.Locale;
@@ -64,7 +65,6 @@ import org.apache.catalina.LifecycleException;
 import org.apache.catalina.LifecycleState;
 import org.apache.catalina.connector.Connector;
 import org.apache.catalina.startup.Tomcat;
-import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.io.IOUtils;
 import org.apache.cxf.fediz.tomcat8.FederationAuthenticator;
 import org.apache.cxf.rs.security.jose.jwa.SignatureAlgorithm;
@@ -813,7 +813,8 @@ public class OIDCTest {
         // Now use the code to get an IdToken
         WebClient webClient2 = setupWebClient(user, password, getIdpHttpsPort());
         String data = storedClientId + ":" + storedClientPassword;
-        String authorizationHeader = "Basic " + Base64.encodeBase64String(data.getBytes(StandardCharsets.UTF_8));
+        String authorizationHeader = "Basic "
+            + Base64.getEncoder().encodeToString(data.getBytes(StandardCharsets.UTF_8));
         webClient2.addRequestHeader("Authorization", authorizationHeader);
         String tokenUrl = "https://localhost:" + getRpHttpsPort() + "/fediz-oidc/oauth2/token";
         WebRequest request = new WebRequest(new URL(tokenUrl), HttpMethod.POST);
diff --git a/systests/samlsso/src/test/java/org/apache/cxf/fediz/systests/samlsso/IdpTest.java b/systests/samlsso/src/test/java/org/apache/cxf/fediz/systests/samlsso/IdpTest.java
index 85eb9d2..ef506a4 100644
--- a/systests/samlsso/src/test/java/org/apache/cxf/fediz/systests/samlsso/IdpTest.java
+++ b/systests/samlsso/src/test/java/org/apache/cxf/fediz/systests/samlsso/IdpTest.java
@@ -30,6 +30,7 @@ import java.nio.charset.StandardCharsets;
 import java.security.PrivateKey;
 import java.security.cert.X509Certificate;
 import java.util.ArrayList;
+import java.util.Base64;
 import java.util.Collections;
 import java.util.UUID;
 
@@ -71,7 +72,6 @@ import org.apache.wss4j.common.saml.OpenSAMLUtil;
 import org.apache.wss4j.common.util.DOM2Writer;
 import org.apache.wss4j.dom.engine.WSSConfig;
 import org.apache.xml.security.signature.XMLSignature;
-import org.apache.xml.security.utils.Base64;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -421,7 +421,7 @@ public class IdpTest {
         signature.update(requestToSign.getBytes(StandardCharsets.UTF_8));
         byte[] signBytes = signature.sign();
 
-        String encodedSignature = Base64.encode(signBytes);
+        String encodedSignature = Base64.getEncoder().encodeToString(signBytes);
 
         String url = "https://localhost:" + getIdpHttpsPort() + "/fediz-idp/saml/up?";
         url += SSOConstants.RELAY_STATE + "=" + relayState;
@@ -491,7 +491,8 @@ public class IdpTest {
 
         final WebClient webClient = new WebClient();
         webClient.getOptions().setUseInsecureSSL(true);
-        webClient.addRequestHeader("Authorization", "Basic " + Base64.encode((user + ":" + password).getBytes()));
+        webClient.addRequestHeader("Authorization", "Basic "
+            + Base64.getEncoder().encodeToString((user + ":" + password).getBytes()));
 
         //
         // First invocation
@@ -521,7 +522,8 @@ public class IdpTest {
         //
 
         webClient.removeRequestHeader("Authorization");
-        webClient.addRequestHeader("Authorization", "Basic " + Base64.encode(("mallory" + ":" + password).getBytes()));
+        webClient.addRequestHeader("Authorization", "Basic "
+            + Base64.getEncoder().encodeToString(("mallory" + ":" + password).getBytes()));
 
         webClient.getOptions().setJavaScriptEnabled(false);
         idpPage = webClient.getPage(url);
@@ -694,7 +696,7 @@ public class IdpTest {
         signature.update(requestToSign.getBytes(StandardCharsets.UTF_8));
         byte[] signBytes = signature.sign();
 
-        String encodedSignature = Base64.encode(signBytes);
+        String encodedSignature = Base64.getEncoder().encodeToString(signBytes);
 
         String url = "https://localhost:" + getIdpHttpsPort() + "/fediz-idp/saml/up?";
         url += SSOConstants.RELAY_STATE + "=" + relayState;
@@ -1180,7 +1182,7 @@ public class IdpTest {
         signature.update(requestToSign.getBytes(StandardCharsets.UTF_8));
         byte[] signBytes = signature.sign();
 
-        String encodedSignature = Base64.encode(signBytes);
+        String encodedSignature = Base64.getEncoder().encodeToString(signBytes);
 
         String url = "https://localhost:" + getIdpHttpsPort() + "/fediz-idp/saml/up?";
         url += SSOConstants.RELAY_STATE + "=" + relayState;
@@ -1256,7 +1258,7 @@ public class IdpTest {
             signBytes[1] = (byte)2;
         }
 
-        String encodedSignature = Base64.encode(signBytes);
+        String encodedSignature = Base64.getEncoder().encodeToString(signBytes);
 
         String url = "https://localhost:" + getIdpHttpsPort() + "/fediz-idp/saml/up?";
         url += SSOConstants.RELAY_STATE + "=" + relayState;
@@ -1327,7 +1329,7 @@ public class IdpTest {
         signature.update(requestToSign.getBytes(StandardCharsets.UTF_8));
         byte[] signBytes = signature.sign();
 
-        String encodedSignature = Base64.encode(signBytes);
+        String encodedSignature = Base64.getEncoder().encodeToString(signBytes);
 
         String url = "https://localhost:" + getIdpHttpsPort() + "/fediz-idp/saml/up?";
         url += SSOConstants.RELAY_STATE + "=" + relayState;
@@ -1484,7 +1486,8 @@ public class IdpTest {
 
         final WebClient webClient = new WebClient();
         webClient.getOptions().setUseInsecureSSL(true);
-        webClient.addRequestHeader("Authorization", "Basic " + Base64.encode((user + ":" + password).getBytes()));
+        webClient.addRequestHeader("Authorization", "Basic "
+            + Base64.getEncoder().encodeToString((user + ":" + password).getBytes()));
 
         //
         // First invocation
@@ -1514,7 +1517,8 @@ public class IdpTest {
         //
 
         webClient.removeRequestHeader("Authorization");
-        webClient.addRequestHeader("Authorization", "Basic " + Base64.encode(("mallory" + ":" + password).getBytes()));
+        webClient.addRequestHeader("Authorization", "Basic "
+            + Base64.getEncoder().encodeToString(("mallory" + ":" + password).getBytes()));
 
         webClient.getOptions().setJavaScriptEnabled(false);
         try {

-- 
To stop receiving notification emails like this one, please contact
['"commits@cxf.apache.org" <co...@cxf.apache.org>'].