This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/master by this push:
new b1948e1 [SCB-2318]revert PR[#2350] and add test case for map null
value (#2580)
b1948e1 is described below
commit b1948e193c7516a58dcc70f72adabb574171a0c4
Author: liubao68 <[email protected]>
AuthorDate: Thu Sep 16 19:30:43 2021 +0800
[SCB-2318]revert PR[#2350] and add test case for map null value (#2580)
---
.../demo/pojo/client/CodeFirstPojoClient.java | 55 ++++++++++++++++------
.../servicecomb/demo/pojo/client/PojoClient.java | 8 ----
.../resources/META-INF/spring/pojo.client.bean.xml | 3 --
.../demo/pojo/server/CodeFirstPojo.java | 5 ++
.../apache/servicecomb/demo/CodeFirstPojoIntf.java | 2 +
.../org/apache/servicecomb/AuthHandlerBoot.java | 16 +------
.../authentication/RSAAuthenticationToken.java | 22 ++++-----
.../provider/RSAProviderTokenManager.java | 29 ++++--------
.../authentication/TestAuthHandlerBoot.java | 8 +---
.../TestRSAProviderTokenManager.java | 21 ++++-----
.../demo/pojo/test/endpoints/CodeFirstPojo.java | 5 ++
11 files changed, 85 insertions(+), 89 deletions(-)
diff --git
a/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/CodeFirstPojoClient.java
b/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/CodeFirstPojoClient.java
index e9c55a1..dc03b66 100644
---
a/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/CodeFirstPojoClient.java
+++
b/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/CodeFirstPojoClient.java
@@ -26,20 +26,21 @@ import java.util.concurrent.CountDownLatch;
import javax.inject.Inject;
+import org.apache.servicecomb.demo.CategorizedTestCase;
import org.apache.servicecomb.demo.CodeFirstPojoIntf;
-import org.apache.servicecomb.demo.DemoConst;
import org.apache.servicecomb.demo.TestMgr;
import org.apache.servicecomb.demo.compute.Person;
import org.apache.servicecomb.demo.server.User;
-import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.apache.servicecomb.foundation.vertx.VertxUtils;
import org.apache.servicecomb.provider.pojo.RpcReference;
import org.apache.servicecomb.swagger.invocation.context.ContextUtils;
import org.apache.servicecomb.swagger.invocation.context.InvocationContext;
+import org.springframework.stereotype.Component;
import io.vertx.core.Vertx;
-public class CodeFirstPojoClient {
+@Component
+public class CodeFirstPojoClient implements CategorizedTestCase {
@RpcReference(microserviceName = "pojo", schemaId =
"org.apache.servicecomb.demo.CodeFirstPojoIntf")
public CodeFirstPojoClientIntf codeFirstAnnotation;
@@ -49,25 +50,24 @@ public class CodeFirstPojoClient {
@Inject
private CodeFirstPojoIntf codeFirstFromXml;
- public void testCodeFirst(String microserviceName) {
- for (String transport : DemoConst.transports) {
- ArchaiusUtils.setProperty("servicecomb.references.transport." +
microserviceName, transport);
- TestMgr.setMsg(microserviceName, transport);
-
- testAll(codeFirstAnnotation);
- testAll(codeFirstAnnotationEmptySchemaId);
- testAll(codeFirstFromXml);
- }
-
- ArchaiusUtils.setProperty("servicecomb.references.transport." +
microserviceName, "rest");
+ @Override
+ public void testRestTransport() throws Exception {
testOnlyRest(codeFirstAnnotation);
}
+ @Override
+ public void testAllTransport() throws Exception {
+ testAll(codeFirstAnnotation);
+ testAll(codeFirstAnnotationEmptySchemaId);
+ testAll(codeFirstFromXml);
+ }
+
private void testOnlyRest(CodeFirstPojoIntf codeFirst) {
testCodeFirstStrings(codeFirst);
}
private void testAll(CodeFirstPojoIntf codeFirst) {
+ remoteCodeFirstPojo_testMap(codeFirst);
testCodeFirstUserMap(codeFirst);
testCodeFirstUserArray(codeFirst);
testCodeFirstStrings(codeFirst);
@@ -121,6 +121,24 @@ public class CodeFirstPojoClient {
}
}
+ private void remoteCodeFirstPojo_testMap(CodeFirstPojoIntf codeFirst) {
+ Map<String, String> userMap = new HashMap<>();
+ userMap.put("u1", "u1");
+ userMap.put("u2", null);
+ Map<String, String> result = codeFirst.testMap(userMap);
+
+ TestMgr.check(result.get("u1"), "u1");
+ TestMgr.check(result.get("u2"), null);
+
+ userMap = new HashMap<>();
+ userMap.put("u1", "u1");
+ userMap.put("u2", "u2");
+ result = codeFirst.testMap(userMap);
+
+ TestMgr.check(result.get("u1"), "u1");
+ TestMgr.check(result.get("u2"), "u2");
+ }
+
private void testCodeFirstUserMap(CodeFirstPojoIntf codeFirst) {
User user1 = new User();
user1.setNames(new String[] {"u1", "u2"});
@@ -137,6 +155,15 @@ public class CodeFirstPojoClient {
TestMgr.check("u2", result.get("u1").getNames()[1]);
TestMgr.check("u3", result.get("u2").getNames()[0]);
TestMgr.check("u4", result.get("u2").getNames()[1]);
+
+ userMap = new HashMap<>();
+ userMap.put("u1", user1);
+ userMap.put("u2", null);
+ result = codeFirst.testUserMap(userMap);
+
+ TestMgr.check(result.get("u1").getNames()[0], "u1");
+ TestMgr.check(result.get("u1").getNames()[1], "u2");
+ TestMgr.check(result.get("u2"), null);
}
private void testCodeFirstUserArray(CodeFirstPojoIntf codeFirst) {
diff --git
a/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/PojoClient.java
b/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/PojoClient.java
index 71a1d82..84dd27f 100644
---
a/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/PojoClient.java
+++
b/demo/demo-pojo/pojo-client/src/main/java/org/apache/servicecomb/demo/pojo/client/PojoClient.java
@@ -57,8 +57,6 @@ public class PojoClient {
public static final byte buffer[] = new byte[1024];
- public static CodeFirstPojoClient codeFirstPojoClient;
-
// reference a not exist a microservice, and never use it
// this should not cause problems
@RpcReference(microserviceName = "notExist")
@@ -114,7 +112,6 @@ public class PojoClient {
smartcare = BeanUtils.getBean("smartcare");
String microserviceName = "pojo";
- codeFirstPojoClient.testCodeFirst(microserviceName);
for (String transport : DemoConst.transports) {
ArchaiusUtils.setProperty("servicecomb.references.transport." +
microserviceName, transport);
@@ -350,9 +347,4 @@ public class PojoClient {
TestMgr.check("User [name=nameA, users count:1, age=100, index=0]",
result);
}
-
- @Inject
- public void setCodeFirstPojoClient(CodeFirstPojoClient codeFirstPojoClient) {
- PojoClient.codeFirstPojoClient = codeFirstPojoClient;
- }
}
diff --git
a/demo/demo-pojo/pojo-client/src/main/resources/META-INF/spring/pojo.client.bean.xml
b/demo/demo-pojo/pojo-client/src/main/resources/META-INF/spring/pojo.client.bean.xml
index b806eba..bba1822 100644
---
a/demo/demo-pojo/pojo-client/src/main/resources/META-INF/spring/pojo.client.bean.xml
+++
b/demo/demo-pojo/pojo-client/src/main/resources/META-INF/spring/pojo.client.bean.xml
@@ -35,9 +35,6 @@
<cse:rpc-reference id="codeFirstFromXml" microservice-name="pojo"
schema-id="org.apache.servicecomb.demo.CodeFirstPojoIntf"></cse:rpc-reference>
- <bean class="org.apache.servicecomb.demo.pojo.client.CodeFirstPojoClient">
- </bean>
-
<bean class="org.apache.servicecomb.demo.pojo.client.BeanRpcTest"
init-method="init">
</bean>
</beans>
diff --git
a/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/CodeFirstPojo.java
b/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/CodeFirstPojo.java
index 8905d8e..3b02aec 100644
---
a/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/CodeFirstPojo.java
+++
b/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/CodeFirstPojo.java
@@ -35,6 +35,11 @@ import io.swagger.annotations.SwaggerDefinition;
@SwaggerDefinition(basePath = "/pojo/rest")
public class CodeFirstPojo implements CodeFirstPojoIntf {
@Override
+ public Map<String, String> testMap(Map<String, String> map) {
+ return map;
+ }
+
+ @Override
public Map<String, User> testUserMap(Map<String, User> userMap) {
return userMap;
}
diff --git
a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstPojoIntf.java
b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstPojoIntf.java
index bcf5681..ccb95b8 100644
---
a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstPojoIntf.java
+++
b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/CodeFirstPojoIntf.java
@@ -25,6 +25,8 @@ import org.apache.servicecomb.demo.compute.Person;
import org.apache.servicecomb.demo.server.User;
public interface CodeFirstPojoIntf {
+ Map<String, String> testMap(Map<String, String> map);
+
Map<String, User> testUserMap(Map<String, User> userMap);
List<User> testUserArray(List<User> users);
diff --git
a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/AuthHandlerBoot.java
b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/AuthHandlerBoot.java
index 9a2e219..5eb06ce 100644
---
a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/AuthHandlerBoot.java
+++
b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/AuthHandlerBoot.java
@@ -24,8 +24,6 @@ import org.apache.servicecomb.registry.RegistrationManager;
import org.apache.servicecomb.registry.definition.DefinitionConst;
import org.springframework.stereotype.Component;
-import com.netflix.config.DynamicPropertyFactory;
-
/**
*
* initialize public and private key pair when system boot before registry
instance to service center
@@ -45,17 +43,7 @@ public class AuthHandlerBoot implements BootListener {
RSAKeypair4Auth.INSTANCE.setPrivateKey(rsaKeyPairEntry.getPrivateKey());
RSAKeypair4Auth.INSTANCE.setPublicKey(rsaKeyPairEntry.getPublicKey());
RSAKeypair4Auth.INSTANCE.setPublicKeyEncoded(rsaKeyPairEntry.getPublicKeyEncoded());
- if (addMicroservicePublicKey()) {
-
RegistrationManager.INSTANCE.getMicroservice().getProperties().put(DefinitionConst.INSTANCE_PUBKEY_PRO,
- rsaKeyPairEntry.getPublicKeyEncoded());
- } else {
-
RegistrationManager.INSTANCE.getMicroserviceInstance().getProperties().put(DefinitionConst.INSTANCE_PUBKEY_PRO,
- rsaKeyPairEntry.getPublicKeyEncoded());
- }
- }
-
- private boolean addMicroservicePublicKey() {
- return DynamicPropertyFactory.getInstance()
- .getBooleanProperty("servicecomb.publicKey.microservice.enabled",
true).get();
+
RegistrationManager.INSTANCE.getMicroserviceInstance().getProperties().put(DefinitionConst.INSTANCE_PUBKEY_PRO,
+ rsaKeyPairEntry.getPublicKeyEncoded());
}
}
diff --git
a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/RSAAuthenticationToken.java
b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/RSAAuthenticationToken.java
index b70f783..0a7385e 100644
---
a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/RSAAuthenticationToken.java
+++
b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/RSAAuthenticationToken.java
@@ -26,17 +26,19 @@ public class RSAAuthenticationToken {
public final static long TOKEN_ACTIVE_TIME = 24 * 60 * 60 * 1000;
- private String instanceId;
+ private final String instanceId;
- private String serviceId;
+ private final String serviceId;
- private long generateTime;
+ private final long generateTime;
- private String randomCode;
+ private final String randomCode;
- private String sign;
+ private final String sign;
- private String tokenFormat;
+ private final String tokenFormat;
+
+ private final String plainToken;
public RSAAuthenticationToken(String instanceId, String serviceId, long
generateTime,
String randomCode, String sign) {
@@ -51,13 +53,13 @@ public class RSAAuthenticationToken {
generateTime,
randomCode,
sign);
+ this.plainToken = String.format("%s@%s@%s@%s", this.instanceId,
this.serviceId, this.generateTime, this.randomCode);
}
public String plainToken() {
- return String.format("%s@%s@%s@%s", this.instanceId, this.serviceId,
this.generateTime, this.randomCode);
+ return this.plainToken;
}
-
public String getInstanceId() {
return instanceId;
}
@@ -90,10 +92,6 @@ public class RSAAuthenticationToken {
return serviceId;
}
- public void setServiceId(String serviceId) {
- this.serviceId = serviceId;
- }
-
@Override
public boolean equals(Object obj) {
if (!(obj instanceof RSAAuthenticationToken)) {
diff --git
a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/provider/RSAProviderTokenManager.java
b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/provider/RSAProviderTokenManager.java
index ac3f767..f6e2ee5 100644
---
a/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/provider/RSAProviderTokenManager.java
+++
b/handlers/handler-publickey-auth/src/main/java/org/apache/servicecomb/authentication/provider/RSAProviderTokenManager.java
@@ -22,16 +22,15 @@ import java.security.SignatureException;
import java.security.spec.InvalidKeySpecException;
import java.util.concurrent.TimeUnit;
-import org.apache.commons.lang3.StringUtils;
import org.apache.servicecomb.authentication.RSAAuthenticationToken;
import org.apache.servicecomb.foundation.common.utils.RSAUtils;
-import org.apache.servicecomb.registry.api.registry.Microservice;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.registry.cache.MicroserviceInstanceCache;
import org.apache.servicecomb.registry.definition.DefinitionConst;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.annotations.VisibleForTesting;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
@@ -39,7 +38,7 @@ public class RSAProviderTokenManager {
private final static Logger LOGGER =
LoggerFactory.getLogger(RSAProviderTokenManager.class);
- private static Cache<RSAAuthenticationToken, Boolean> validatedToken =
CacheBuilder.newBuilder()
+ private Cache<RSAAuthenticationToken, Boolean> validatedToken =
CacheBuilder.newBuilder()
.expireAfterAccess(getExpiredTime(), TimeUnit.MILLISECONDS)
.build();
@@ -57,12 +56,12 @@ public class RSAProviderTokenManager {
return false;
}
- if (getValidatedToken().asMap().containsKey(rsaToken)) {
+ if (validatedToken.asMap().containsKey(rsaToken)) {
return
accessController.isAllowed(MicroserviceInstanceCache.getOrCreate(rsaToken.getServiceId()));
}
if (isValidToken(rsaToken) && !tokenExpired(rsaToken)) {
- getValidatedToken().put(rsaToken, true);
+ validatedToken.put(rsaToken, true);
return
accessController.isAllowed(MicroserviceInstanceCache.getOrCreate(rsaToken.getServiceId()));
}
return false;
@@ -76,14 +75,11 @@ public class RSAProviderTokenManager {
throws NoSuchAlgorithmException, InvalidKeySpecException,
InvalidKeyException, SignatureException {
String sign = rsaToken.getSign();
String content = rsaToken.plainToken();
- String publicKey = getPublicKeyFromMicroservice(rsaToken.getServiceId());
- if (StringUtils.isEmpty(publicKey)) {
- publicKey = getPublicKeyFromInstance(rsaToken.getInstanceId(),
rsaToken.getServiceId());
- }
+ String publicKey = getPublicKeyFromInstance(rsaToken.getInstanceId(),
rsaToken.getServiceId());
return RSAUtils.verify(publicKey, sign, content);
}
- public static int getExpiredTime() {
+ protected int getExpiredTime() {
return 60 * 60 * 1000;
}
@@ -104,17 +100,8 @@ public class RSAProviderTokenManager {
}
}
- private String getPublicKeyFromMicroservice(String serviceId) {
- Microservice microservice =
MicroserviceInstanceCache.getOrCreate(serviceId);
- if (microservice != null) {
- return
microservice.getProperties().get(DefinitionConst.INSTANCE_PUBKEY_PRO);
- } else {
- LOGGER.error("not instance found {}, maybe attack", serviceId);
- return "";
- }
- }
-
- public static Cache<RSAAuthenticationToken, Boolean> getValidatedToken() {
+ @VisibleForTesting
+ Cache<RSAAuthenticationToken, Boolean> getValidatedToken() {
return validatedToken;
}
}
diff --git
a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthHandlerBoot.java
b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthHandlerBoot.java
index 1cd38fb..829269c 100644
---
a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthHandlerBoot.java
+++
b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestAuthHandlerBoot.java
@@ -63,16 +63,12 @@ public class TestAuthHandlerBoot {
}
@Test
- public void testMicroservicePublicKey() {
- MicroserviceInstance microserviceInstance = new MicroserviceInstance();
- Microservice microservice = new Microservice();
- microservice.setInstance(microserviceInstance);
-
+ public void testMicroserviceInstancePublicKey() {
AuthHandlerBoot authHandlerBoot = new AuthHandlerBoot();
BootEvent bootEvent = new BootEvent();
bootEvent.setEventType(BootListener.EventType.BEFORE_REGISTRY);
authHandlerBoot.onBootEvent(bootEvent);
- String publicKey = RegistrationManager.INSTANCE.getMicroservice().
+ String publicKey = RegistrationManager.INSTANCE.getMicroserviceInstance().
getProperties().get(DefinitionConst.INSTANCE_PUBKEY_PRO);
Assert.assertNotNull(publicKey);
}
diff --git
a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestRSAProviderTokenManager.java
b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/provider/TestRSAProviderTokenManager.java
similarity index 92%
rename from
handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestRSAProviderTokenManager.java
rename to
handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/provider/TestRSAProviderTokenManager.java
index b742038..5581143 100644
---
a/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/TestRSAProviderTokenManager.java
+++
b/handlers/handler-publickey-auth/src/test/java/org/apache/servicecomb/authentication/provider/TestRSAProviderTokenManager.java
@@ -14,14 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.servicecomb.authentication;
+package org.apache.servicecomb.authentication.provider;
import java.util.HashMap;
import java.util.Map;
-import java.util.concurrent.TimeUnit;
+import org.apache.servicecomb.authentication.RSAAuthenticationToken;
import org.apache.servicecomb.authentication.consumer.RSAConsumerTokenManager;
-import org.apache.servicecomb.authentication.provider.RSAProviderTokenManager;
import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.foundation.common.utils.RSAKeyPairEntry;
import org.apache.servicecomb.foundation.common.utils.RSAUtils;
@@ -38,7 +37,6 @@ import org.junit.Before;
import org.junit.Test;
import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
import mockit.Expectations;
@@ -75,7 +73,13 @@ public class TestRSAProviderTokenManager {
String tokenStr =
"e8a04b54cf2711e7b701286ed488fc20@c8636e5acf1f11e7b701286ed488fc20@1511315597475@9t0tp8ce80SUM5ts6iRGjFJMvCdQ7uvhpyh0RM7smKm3p4wYOrojr4oT1Pnwx7xwgcgEFbQdwPJxIMfivpQ1rHGqiLp67cjACvJ3Ke39pmeAVhybsLADfid6oSjscFaJ@WBYouF6hXYrXzBA31HC3VX8Bw9PNgJUtVqOPAaeW9ye3q/D7WWb0M+XMouBIWxWY6v9Un1dGu5Rkjlx6gZbnlHkb2VO8qFR3Y6lppooWCirzpvEBRjlJQu8LPBur0BCfYGq8XYrEZA2NU6sg2zXieqCSiX6BnMnBHNn4cR9iZpk=";
RSAAuthenticationToken token = RSAAuthenticationToken.fromStr(tokenStr);
- RSAProviderTokenManager tokenManager = new RSAProviderTokenManager();
+ RSAProviderTokenManager tokenManager = new RSAProviderTokenManager() {
+ @Override
+ protected int getExpiredTime() {
+ return 500;
+ }
+ };
+
new Expectations(RSAProviderTokenManager.class,
RSAAuthenticationToken.class) {
{
token.getGenerateTime();
@@ -83,17 +87,12 @@ public class TestRSAProviderTokenManager {
tokenManager.isValidToken(token);
result = true;
-
- RSAProviderTokenManager.getValidatedToken();
- result = CacheBuilder.newBuilder()
- .expireAfterAccess(500, TimeUnit.MILLISECONDS)
- .build();
}
};
Assert.assertTrue(tokenManager.valid(tokenStr));
- Cache<RSAAuthenticationToken, Boolean> cache = RSAProviderTokenManager
+ Cache<RSAAuthenticationToken, Boolean> cache = tokenManager
.getValidatedToken();
Assert.assertTrue(cache.asMap().containsKey(token));
diff --git
a/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/CodeFirstPojo.java
b/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/CodeFirstPojo.java
index f420315..944d17e 100644
---
a/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/CodeFirstPojo.java
+++
b/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/CodeFirstPojo.java
@@ -31,6 +31,11 @@ import
org.apache.servicecomb.swagger.invocation.context.ContextUtils;
public class CodeFirstPojo implements CodeFirstPojoIntf {
@Override
+ public Map<String, String> testMap(Map<String, String> map) {
+ return map;
+ }
+
+ @Override
public Map<String, User> testUserMap(Map<String, User> userMap) {
return userMap;
}