From 6787f8c50a776b4a39b1da9014021e1a84d6f93e Mon Sep 17 00:00:00 2001 From: zhangzhenli Date: Tue, 26 Jun 2018 16:12:35 +0800 Subject: [PATCH] =?UTF-8?q?Modify=20the=20enum=20as=20an=20abstract=20type?= =?UTF-8?q?,=20allowing=20custom=20implementations=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../builder/api/ClientAuthenticationType.java | 50 +++++++++++-------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/ClientAuthenticationType.java b/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/ClientAuthenticationType.java index 77212ce95..2faa81d46 100644 --- a/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/ClientAuthenticationType.java +++ b/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/ClientAuthenticationType.java @@ -12,28 +12,36 @@ * in it's part 2.3.1. Client Password
* https://tools.ietf.org/html/rfc6749#section-2.3.1 */ -public enum ClientAuthenticationType { - HTTP_BASIC_AUTHENTICATION_SCHEME { - private final Base64.Encoder base64Encoder = Base64.getEncoder(); +public abstract class ClientAuthenticationType { - @Override - public void addClientAuthentication(OAuthRequest request, String apiKey, String apiSecret) { - if (apiKey != null && apiSecret != null) { - request.addHeader(OAuthConstants.HEADER, OAuthConstants.BASIC + ' ' - + base64Encoder.encodeToString( + public static final ClientAuthenticationType HTTP_BASIC_AUTHENTICATION_SCHEME = + new ClientAuthenticationType() { + private final Base64.Encoder base64Encoder = Base64.getEncoder(); + + @Override + public void addClientAuthentication(OAuthRequest request, String apiKey, + String apiSecret) { + if (apiKey != null && apiSecret != null) { + request.addHeader(OAuthConstants.HEADER, OAuthConstants.BASIC + ' ' + + base64Encoder.encodeToString( String.format("%s:%s", apiKey, apiSecret).getBytes(Charset.forName("UTF-8")))); - } - } - }, - REQUEST_BODY { - @Override - public void addClientAuthentication(OAuthRequest request, String apiKey, String apiSecret) { - request.addParameter(OAuthConstants.CLIENT_ID, apiKey); - if (apiSecret != null) { - request.addParameter(OAuthConstants.CLIENT_SECRET, apiSecret); - } - } - }; + } + } + }; + + public static final ClientAuthenticationType REQUEST_BODY = + new ClientAuthenticationType() { + + @Override + public void addClientAuthentication(OAuthRequest request, String apiKey, + String apiSecret) { + request.addParameter(OAuthConstants.CLIENT_ID, apiKey); + if (apiSecret != null) { + request.addParameter(OAuthConstants.CLIENT_SECRET, apiSecret); + } + } + }; - public abstract void addClientAuthentication(OAuthRequest request, String apiKey, String apiSecret); + public abstract void addClientAuthentication(OAuthRequest request, String apiKey, + String apiSecret); }