From 4d157c68b7003948b8dd7ac2d38e8ceb1c469be0 Mon Sep 17 00:00:00 2001
From: Ooo0oO0o0oO <907709476@qq.com>
Date: Tue, 24 Dec 2019 10:47:19 +0800
Subject: [PATCH] reorg project structure
---
.../dubbo/common/utils/SignatureUtils.java | 8 +-
dubbo-plugin/dubbo-auth/pom.xml | 46 +++++++++++
.../auth/AccessKeyAuthenticationHelper.java | 76 ++++++++++---------
.../java/org/apache/dubbo/auth/Constants.java | 46 +++++++++++
.../dubbo/auth/DefaultAccessKeyStorage.java | 38 ++++++++++
.../AccessKeyNotFoundException.java | 6 +-
.../dubbo/auth/filter/ConsumerSignFilter.java | 11 +--
.../auth}/filter/ProviderAuthFilter.java | 8 +-
.../dubbo/auth/model/AccessKeyPair.java | 6 +-
.../dubbo/auth/spi}/AccessKeyStorage.java | 11 +--
.../dubbo/auth/spi}/AuthenticationHelper.java | 2 +-
...org.apache.dubbo.auth.spi.AccessKeyStorage | 1 +
...apache.dubbo.auth.spi.AuthenticationHelper | 1 +
.../internal/org.apache.dubbo.rpc.Filter | 2 +
dubbo-plugin/pom.xml | 1 +
.../java/org/apache/dubbo/rpc/Constants.java | 22 ------
16 files changed, 204 insertions(+), 81 deletions(-)
create mode 100644 dubbo-plugin/dubbo-auth/pom.xml
rename {dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter => dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo}/auth/AccessKeyAuthenticationHelper.java (73%)
create mode 100644 dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/Constants.java
create mode 100644 dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/DefaultAccessKeyStorage.java
rename {dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth => dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/exception}/AccessKeyNotFoundException.java (86%)
rename dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ConsumerAuthFilter.java => dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/filter/ConsumerSignFilter.java (89%)
rename {dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc => dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth}/filter/ProviderAuthFilter.java (93%)
rename dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AccessKey.java => dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/model/AccessKeyPair.java (95%)
rename {dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth => dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/spi}/AccessKeyStorage.java (78%)
rename {dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth => dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/spi}/AuthenticationHelper.java (97%)
create mode 100644 dubbo-plugin/dubbo-auth/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.auth.spi.AccessKeyStorage
create mode 100644 dubbo-plugin/dubbo-auth/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.auth.spi.AuthenticationHelper
create mode 100644 dubbo-plugin/dubbo-auth/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/SignatureUtils.java b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/SignatureUtils.java
index 06a73be9610..a283d4abdda 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/SignatureUtils.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/SignatureUtils.java
@@ -23,6 +23,7 @@
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.Serializable;
+import java.security.NoSuchAlgorithmException;
import java.security.SignatureException;
import java.util.Arrays;
import java.util.Base64;
@@ -44,7 +45,7 @@ public static String sign(Object[] parameters, String metadata, String key) {
return sign(metadata, key);
}
boolean notSerializable = Arrays.stream(parameters).anyMatch(parameter -> !(parameter instanceof Serializable));
- if (notSerializable){
+ if (notSerializable) {
throw new IllegalArgumentException("");
}
@@ -61,9 +62,9 @@ public static String sign(Object[] parameters, String metadata, String key) {
public static String sign(byte[] data, String key) throws SignatureException {
String result;
try {
+ Mac mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);
SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(),
HMAC_SHA256_ALGORITHM);
- Mac mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);
mac.init(signingKey);
// compute the hmac on input data bytes
byte[] rawHmac = mac.doFinal(data);
@@ -84,8 +85,7 @@ static byte[] toByteArray(Object[] parameters) throws Exception {
out = new ObjectOutputStream(bos);
out.writeObject(parameters);
out.flush();
- byte[] bytes = bos.toByteArray();
- return bytes;
+ return bos.toByteArray();
} finally {
try {
bos.close();
diff --git a/dubbo-plugin/dubbo-auth/pom.xml b/dubbo-plugin/dubbo-auth/pom.xml
new file mode 100644
index 00000000000..5ae1d98ac07
--- /dev/null
+++ b/dubbo-plugin/dubbo-auth/pom.xml
@@ -0,0 +1,46 @@
+
+
+
+ org.apache.dubbo
+ dubbo-plugin
+ ${revision}
+ ../pom.xml
+
+ 4.0.0
+
+ dubbo-auth
+ jar
+
+
+ UTF-8
+ false
+
+
+
+
+ org.apache.dubbo
+ dubbo-common
+ ${project.version}
+
+
+ org.apache.dubbo
+ dubbo-rpc-api
+ ${project.version}
+
+
+
\ No newline at end of file
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AccessKeyAuthenticationHelper.java b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/AccessKeyAuthenticationHelper.java
similarity index 73%
rename from dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AccessKeyAuthenticationHelper.java
rename to dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/AccessKeyAuthenticationHelper.java
index afb72e2b82d..c2c900bcb2a 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AccessKeyAuthenticationHelper.java
+++ b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/AccessKeyAuthenticationHelper.java
@@ -14,14 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.rpc.filter.auth;
+package org.apache.dubbo.auth;
+import org.apache.dubbo.auth.exception.AccessKeyNotFoundException;
+import org.apache.dubbo.auth.model.AccessKeyPair;
+import org.apache.dubbo.auth.spi.AccessKeyStorage;
+import org.apache.dubbo.auth.spi.AuthenticationHelper;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.utils.SignatureUtils;
import org.apache.dubbo.common.utils.StringUtils;
-import org.apache.dubbo.rpc.Constants;
import org.apache.dubbo.rpc.Invocation;
public class AccessKeyAuthenticationHelper implements AuthenticationHelper {
@@ -29,59 +32,62 @@ public class AccessKeyAuthenticationHelper implements AuthenticationHelper {
public void signForRequest(Invocation invocation, URL url) {
String currentTime = String.valueOf(System.currentTimeMillis());
String consumer = url.getParameter(CommonConstants.APPLICATION_KEY);
-
- AccessKeyStorage accessKeyStorage = ExtensionLoader.getExtensionLoader(AccessKeyStorage.class)
- .getExtension(url.getParameter(Constants.ACCESS_KEY_STORAGE_KEY, Constants.DEFAULT_ACCESS_KEY_STORAGE));
-
- AccessKey accessKey = accessKeyStorage.getAccessKey(url, invocation);
-
- invocation.setAttachment(Constants.SIGNATURE_STRING_FORMAT, getSignature(url, invocation, accessKey.getSecretKey(), currentTime));
+ AccessKeyPair accessKeyPair = getAccessKeyPair(invocation, url);
+ invocation.setAttachment(Constants.SIGNATURE_STRING_FORMAT, getSignature(url, invocation, accessKeyPair.getSecretKey(), currentTime));
invocation.setAttachment(Constants.REQUEST_TIMESTAMP_KEY, currentTime);
- invocation.setAttachment(Constants.AK_KEY, accessKey.getAccessKey());
+ invocation.setAttachment(Constants.AK_KEY, accessKeyPair.getAccessKey());
invocation.setAttachment(CommonConstants.CONSUMER, consumer);
}
- String getSignature(URL url, Invocation invocation, String secrectKey, String time) {
- boolean parameterEncrypt = url.getParameter(Constants.PARAMTER_ENCRYPT_ENABLE_KEY, false);
- String signature;
- String requestString = String.format(Constants.SIGNATURE_STRING_FORMAT,
- url.getColonSeparatedKey(), invocation.getMethodName(), secrectKey, time);
- if (parameterEncrypt) {
- signature = SignatureUtils.sign(invocation.getArguments(), requestString, secrectKey);
- } else {
- signature = SignatureUtils.sign(requestString, secrectKey);
- }
- return signature;
- }
-
@Override
public boolean authenticateRequest(Invocation invocation, URL url) {
- String ak = String.valueOf(invocation.getAttachment(Constants.AK_KEY));
+ String accessKeyId = String.valueOf(invocation.getAttachment(Constants.AK_KEY));
String requestTimestamp = String.valueOf(invocation.getAttachment(Constants.REQUEST_TIMESTAMP_KEY));
String originSignature = String.valueOf(invocation.getAttachment(Constants.REQUEST_SIGNATURE_KEY));
String consumer = String.valueOf(invocation.getAttachment(CommonConstants.CONSUMER));
- if (StringUtils.isEmpty(ak) || StringUtils.isEmpty(consumer)
+ if (StringUtils.isEmpty(accessKeyId) || StringUtils.isEmpty(consumer)
|| StringUtils.isEmpty(requestTimestamp) || StringUtils.isEmpty(originSignature)) {
throw new RuntimeException("Auth failed, maybe consumer not enable the auth");
}
+ AccessKeyPair accessKeyPair = getAccessKeyPair(invocation, url);
+
+ String computeSignature = getSignature(url, invocation, accessKeyPair.getSecretKey(), requestTimestamp);
+ boolean success = computeSignature.equals(originSignature);
+ if (!success) {
+ throw new RuntimeException("Auth failed, signature is not correct");
+ }
+ return success;
+ }
+
+
+ AccessKeyPair getAccessKeyPair(Invocation invocation, URL url) {
AccessKeyStorage accessKeyStorage = ExtensionLoader.getExtensionLoader(AccessKeyStorage.class)
.getExtension(url.getParameter(Constants.ACCESS_KEY_STORAGE_KEY, Constants.DEFAULT_ACCESS_KEY_STORAGE));
- AccessKey accessKey = null;
+ AccessKeyPair accessKeyPair = null;
try {
- accessKey = accessKeyStorage.getAccessKey(url, invocation);
- if (accessKey == null) {
- throw new AccessKeyNotFoundException("AccessKey:" + ak + "consumer:" + consumer + " not found");
+ accessKeyPair = accessKeyStorage.getAccessKey(url, invocation);
+ if (accessKeyPair == null || StringUtils.isEmpty(accessKeyPair.getAccessKey()) || StringUtils.isEmpty(accessKeyPair.getSecretKey())) {
+ throw new AccessKeyNotFoundException("AccessKeyId or secretAccessKey not found");
}
} catch (Exception e) {
- throw new RuntimeException("Can't load the AccessKey from accessKeyStorage", e);
+ throw new RuntimeException("Can't load the AccessKeyPair from accessKeyStorage", e);
}
- String computeSignature = getSignature(url, invocation, accessKey.getSecretKey(), requestTimestamp);
- boolean success = computeSignature.equals(originSignature);
- if (!success) {
- throw new RuntimeException("Auth failed, signature is not correct");
+ return accessKeyPair;
+ }
+
+ String getSignature(URL url, Invocation invocation, String secrectKey, String time) {
+ boolean parameterEncrypt = url.getParameter(Constants.PARAMTER_ENCRYPT_ENABLE_KEY, false);
+ String signature;
+ String requestString = String.format(Constants.SIGNATURE_STRING_FORMAT,
+ url.getColonSeparatedKey(), invocation.getMethodName(), secrectKey, time);
+ if (parameterEncrypt) {
+ signature = SignatureUtils.sign(invocation.getArguments(), requestString, secrectKey);
+ } else {
+ signature = SignatureUtils.sign(requestString, secrectKey);
}
- return success;
+ return signature;
}
+
}
diff --git a/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/Constants.java b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/Constants.java
new file mode 100644
index 00000000000..b7a76cb876c
--- /dev/null
+++ b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/Constants.java
@@ -0,0 +1,46 @@
+/*
+ * 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.dubbo.auth;
+
+
+public interface Constants {
+ String REFERENCE_AUTH = "reference.auth";
+
+ String SERVICE_AUTH = "service.auth";
+
+ String AUTH_HELPER = "auth.helper";
+
+ String DEFAULT_AUTH_HELPER = "accesskey";
+
+ String DEFAULT_ACCESS_KEY_STORAGE = "urlstorage";
+
+ String ACCESS_KEY_STORAGE_KEY = "accessKey.storage";
+
+ String ACCESS_KEY_ID_KEY = "accessKeyId";
+
+ String SECRET_ACCESS_KEY_KEY = "secretAccessKey";
+
+ String REQUEST_TIMESTAMP_KEY = "timestamp";
+
+ String REQUEST_SIGNATURE_KEY = "signature";
+
+ String AK_KEY = "ak";
+
+ String SIGNATURE_STRING_FORMAT = "%s#%s#%s#%s";
+
+ String PARAMTER_ENCRYPT_ENABLE_KEY = "paramater.sign";
+}
diff --git a/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/DefaultAccessKeyStorage.java b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/DefaultAccessKeyStorage.java
new file mode 100644
index 00000000000..fd69af979a5
--- /dev/null
+++ b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/DefaultAccessKeyStorage.java
@@ -0,0 +1,38 @@
+/*
+ * 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.dubbo.auth;
+
+
+import org.apache.dubbo.auth.model.AccessKeyPair;
+import org.apache.dubbo.auth.spi.AccessKeyStorage;
+import org.apache.dubbo.common.URL;
+import org.apache.dubbo.rpc.Invocation;
+
+/**
+ * The default implemention of {@link AccessKeyStorage}
+ */
+public class DefaultAccessKeyStorage implements AccessKeyStorage {
+ @Override
+ public AccessKeyPair getAccessKey(URL url, Invocation invocation) {
+ AccessKeyPair accessKeyPair = new AccessKeyPair();
+ String accessKeyId = url.getParameter(Constants.ACCESS_KEY_ID_KEY);
+ String secretAccessKey = url.getParameter(Constants.SECRET_ACCESS_KEY_KEY);
+ accessKeyPair.setAccessKey(accessKeyId);
+ accessKeyPair.setSecretKey(secretAccessKey);
+ return accessKeyPair;
+ }
+}
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AccessKeyNotFoundException.java b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/exception/AccessKeyNotFoundException.java
similarity index 86%
rename from dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AccessKeyNotFoundException.java
rename to dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/exception/AccessKeyNotFoundException.java
index 7faf52474ba..5b53db2d175 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AccessKeyNotFoundException.java
+++ b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/exception/AccessKeyNotFoundException.java
@@ -14,11 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.rpc.filter.auth;
+package org.apache.dubbo.auth.exception;
+import org.apache.dubbo.auth.model.AccessKeyPair;
+
/**
- * Signals that an attempt to get the {@link AccessKey} has failed.
+ * Signals that an attempt to get the {@link AccessKeyPair} has failed.
*/
public class AccessKeyNotFoundException extends Exception {
private static final long serialVersionUID = 7106108446396804404L;
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ConsumerAuthFilter.java b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/filter/ConsumerSignFilter.java
similarity index 89%
rename from dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ConsumerAuthFilter.java
rename to dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/filter/ConsumerSignFilter.java
index c2b78035d39..d796595ebb7 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ConsumerAuthFilter.java
+++ b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/filter/ConsumerSignFilter.java
@@ -14,26 +14,27 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.rpc.filter;
+package org.apache.dubbo.auth.filter;
+import org.apache.dubbo.auth.Constants;
+import org.apache.dubbo.auth.spi.AuthenticationHelper;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.common.extension.ExtensionLoader;
-import org.apache.dubbo.rpc.Constants;
import org.apache.dubbo.rpc.Filter;
import org.apache.dubbo.rpc.Invocation;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.Result;
import org.apache.dubbo.rpc.RpcException;
-import org.apache.dubbo.rpc.filter.auth.AuthenticationHelper;
/**
- * The ConsumerAuthFilter
+ * The ConsumerSignFilter
+ *
* @see org.apache.dubbo.rpc.Filter
*/
@Activate(group = CommonConstants.CONSUMER, order = -10000)
-public class ConsumerAuthFilter implements Filter {
+public class ConsumerSignFilter implements Filter {
@Override
public Result invoke(Invoker> invoker, Invocation invocation) throws RpcException {
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ProviderAuthFilter.java b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/filter/ProviderAuthFilter.java
similarity index 93%
rename from dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ProviderAuthFilter.java
rename to dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/filter/ProviderAuthFilter.java
index db669437138..278fa57c4ab 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ProviderAuthFilter.java
+++ b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/filter/ProviderAuthFilter.java
@@ -14,20 +14,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.rpc.filter;
+package org.apache.dubbo.auth.filter;
+import org.apache.dubbo.auth.spi.AuthenticationHelper;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.rpc.AsyncRpcResult;
-import org.apache.dubbo.rpc.Constants;
+import org.apache.dubbo.auth.Constants;
import org.apache.dubbo.rpc.Filter;
import org.apache.dubbo.rpc.Invocation;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.Result;
import org.apache.dubbo.rpc.RpcException;
-import org.apache.dubbo.rpc.filter.auth.AuthenticationHelper;
@Activate(group = CommonConstants.PROVIDER, order = -10000)
public class ProviderAuthFilter implements Filter {
@@ -43,7 +43,7 @@ public Result invoke(Invoker> invoker, Invocation invocation) throws RpcExcept
try {
authResult = authenticationHelper.authenticateRequest(invocation, url);
if (!authResult) {
- SecurityException securityException = new SecurityException("Authenticate Request failed" );
+ SecurityException securityException = new SecurityException("Authenticate Request failed");
return AsyncRpcResult.newDefaultAsyncResult(securityException, invocation);
}
} catch (Exception e) {
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AccessKey.java b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/model/AccessKeyPair.java
similarity index 95%
rename from dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AccessKey.java
rename to dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/model/AccessKeyPair.java
index 524ed4bcc65..212f609c419 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AccessKey.java
+++ b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/model/AccessKeyPair.java
@@ -14,12 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.rpc.filter.auth;
+package org.apache.dubbo.auth.model;
/**
* The model of AK/SK pair
*/
-public class AccessKey {
+public class AccessKeyPair {
private String accessKey;
private String secretKey;
private String consumerSide;
@@ -77,7 +77,7 @@ public void setOptions(String options) {
@Override
public String toString() {
- return "AccessKey{" +
+ return "AccessKeyPair{" +
"accessKey='" + accessKey + '\'' +
", secretKey='" + secretKey + '\'' +
", consumerSide='" + consumerSide + '\'' +
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AccessKeyStorage.java b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/spi/AccessKeyStorage.java
similarity index 78%
rename from dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AccessKeyStorage.java
rename to dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/spi/AccessKeyStorage.java
index e363bb2e5d3..b7d15eb796b 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AccessKeyStorage.java
+++ b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/spi/AccessKeyStorage.java
@@ -14,26 +14,27 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.rpc.filter.auth;
+package org.apache.dubbo.auth.spi;
+import org.apache.dubbo.auth.model.AccessKeyPair;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.extension.SPI;
import org.apache.dubbo.rpc.Invocation;
/**
- * This SPI Extension support us to store our {@link AccessKey} or load {@link AccessKey} from other
+ * This SPI Extension support us to store our {@link AccessKeyPair} or load {@link AccessKeyPair} from other
* storage, such as filesystem.
- *
*/
@SPI
public interface AccessKeyStorage {
/**
- * get AccessKey of this request
+ * get AccessKeyPair of this request
+ *
* @param url
* @param invocation
* @return
*/
- AccessKey getAccessKey(URL url, Invocation invocation);
+ AccessKeyPair getAccessKey(URL url, Invocation invocation);
}
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AuthenticationHelper.java b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/spi/AuthenticationHelper.java
similarity index 97%
rename from dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AuthenticationHelper.java
rename to dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/spi/AuthenticationHelper.java
index 977ebd56f1f..d86f3a68963 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/auth/AuthenticationHelper.java
+++ b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/spi/AuthenticationHelper.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.rpc.filter.auth;
+package org.apache.dubbo.auth.spi;
import org.apache.dubbo.common.URL;
diff --git a/dubbo-plugin/dubbo-auth/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.auth.spi.AccessKeyStorage b/dubbo-plugin/dubbo-auth/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.auth.spi.AccessKeyStorage
new file mode 100644
index 00000000000..f264ed5e932
--- /dev/null
+++ b/dubbo-plugin/dubbo-auth/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.auth.spi.AccessKeyStorage
@@ -0,0 +1 @@
+urlstorage=org.apache.dubbo.auth.DefaultAccessKeyStorage
\ No newline at end of file
diff --git a/dubbo-plugin/dubbo-auth/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.auth.spi.AuthenticationHelper b/dubbo-plugin/dubbo-auth/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.auth.spi.AuthenticationHelper
new file mode 100644
index 00000000000..7a7f3921321
--- /dev/null
+++ b/dubbo-plugin/dubbo-auth/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.auth.spi.AuthenticationHelper
@@ -0,0 +1 @@
+accesskey=org.apache.dubbo.auth.AccessKeyAuthenticationHelper
\ No newline at end of file
diff --git a/dubbo-plugin/dubbo-auth/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter b/dubbo-plugin/dubbo-auth/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
new file mode 100644
index 00000000000..2d15cd462ab
--- /dev/null
+++ b/dubbo-plugin/dubbo-auth/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
@@ -0,0 +1,2 @@
+consumersign=org.apache.dubbo.auth.filter.ConsumerSignFilter
+providerauth=org.apache.dubbo.auth.filter.ProviderAuthFilter
\ No newline at end of file
diff --git a/dubbo-plugin/pom.xml b/dubbo-plugin/pom.xml
index 5945b659e78..194525c5289 100644
--- a/dubbo-plugin/pom.xml
+++ b/dubbo-plugin/pom.xml
@@ -30,6 +30,7 @@
The registry module of dubbo project
dubbo-qos
+ dubbo-auth
false
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/Constants.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/Constants.java
index 092aa9f389f..b3eb025fb54 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/Constants.java
+++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/Constants.java
@@ -85,26 +85,4 @@ public interface Constants {
String INPUT_KEY = "input";
String OUTPUT_KEY = "output";
- String REFERENCE_AUTH = "auth";
-
- String SERVICE_AUTH = "service.auth";
-
- String AUTH_HELPER = "auth.helper";
-
- String DEFAULT_AUTH_HELPER = "accessKey";
-
- String DEFAULT_ACCESS_KEY_STORAGE = "";
-
- String ACCESS_KEY_STORAGE_KEY = "accessKey.storage";
-
- String REQUEST_TIMESTAMP_KEY = "timestamp";
-
- String REQUEST_SIGNATURE_KEY = "signature";
-
- String AK_KEY = "ak";
-
- String SIGNATURE_STRING_FORMAT = "%s#%s#%s#%s";
-
- String PARAMTER_ENCRYPT_ENABLE_KEY = "paramater.sign";
-
}