|
@@ -4,19 +4,21 @@ import com.dragoninfo.dcuc.common.http.SkipSslVerificationHttpRequestFactory;
|
|
import com.dragonsoft.dcuc.approve.model.resp.bim.ZeroTrustAppItemUserTokenInfoRespVO;
|
|
import com.dragonsoft.dcuc.approve.model.resp.bim.ZeroTrustAppItemUserTokenInfoRespVO;
|
|
import com.dragonsoft.dcuc.approve.model.resp.bim.ZeroTrustAppTokenInfoRespVO;
|
|
import com.dragonsoft.dcuc.approve.model.resp.bim.ZeroTrustAppTokenInfoRespVO;
|
|
import com.dragonsoft.dcuc.approve.properties.BimProperties;
|
|
import com.dragonsoft.dcuc.approve.properties.BimProperties;
|
|
|
|
+import com.dragonsoft.smtools.enums.SmTypeEunm;
|
|
|
|
+import com.dragonsoft.smtools.loader.SMFactory;
|
|
|
|
+import com.fasterxml.jackson.databind.DeserializationFeature;
|
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
+import com.github.dreamhead.moco.HttpServer;
|
|
|
|
+import com.github.dreamhead.moco.Runner;
|
|
|
|
+import org.junit.AfterClass;
|
|
import org.junit.Assert;
|
|
import org.junit.Assert;
|
|
import org.junit.Before;
|
|
import org.junit.Before;
|
|
import org.junit.Test;
|
|
import org.junit.Test;
|
|
-import org.springframework.http.HttpMethod;
|
|
|
|
-import org.springframework.http.HttpStatus;
|
|
|
|
-import org.springframework.http.MediaType;
|
|
|
|
-import org.springframework.test.web.client.ExpectedCount;
|
|
|
|
-import org.springframework.test.web.client.MockRestServiceServer;
|
|
|
|
-import org.springframework.test.web.client.match.MockRestRequestMatchers;
|
|
|
|
-import org.springframework.test.web.client.response.MockRestResponseCreators;
|
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
-import java.net.URI;
|
|
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+
|
|
|
|
+import static com.github.dreamhead.moco.Moco.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
@@ -28,72 +30,89 @@ import java.net.URI;
|
|
*/
|
|
*/
|
|
public class BimBusinessImplTest {
|
|
public class BimBusinessImplTest {
|
|
|
|
|
|
- private RestTemplate restTemplate;
|
|
|
|
|
|
+ public static Runner runner;
|
|
|
|
+
|
|
|
|
|
|
- private MockRestServiceServer mockRestServiceServer;
|
|
|
|
|
|
+ String identityUrl = "http://127.0.0.1:8080";
|
|
|
|
+ String appInfoUrl = "/idp/rest/getAppTokenInfo";
|
|
|
|
+
|
|
|
|
+ BimBusinessImpl bimBusiness;
|
|
|
|
|
|
@Before
|
|
@Before
|
|
- public void before() {
|
|
|
|
|
|
+ public void before() throws Exception {
|
|
|
|
+ HttpServer httpServer = httpServer(8080, log());
|
|
|
|
+
|
|
|
|
+ httpServer.request(by(uri(appInfoUrl)))
|
|
|
|
+ .response(pathResource("bim/getAppTokenInfo.json"));
|
|
|
|
+
|
|
|
|
+ runner = Runner.runner(httpServer);
|
|
|
|
+
|
|
|
|
+ runner.start();
|
|
|
|
+
|
|
SkipSslVerificationHttpRequestFactory skipSslVerificationHttpRequestFactory
|
|
SkipSslVerificationHttpRequestFactory skipSslVerificationHttpRequestFactory
|
|
= new SkipSslVerificationHttpRequestFactory();
|
|
= new SkipSslVerificationHttpRequestFactory();
|
|
skipSslVerificationHttpRequestFactory.setReadTimeout(5000);
|
|
skipSslVerificationHttpRequestFactory.setReadTimeout(5000);
|
|
skipSslVerificationHttpRequestFactory.setConnectTimeout(5000);
|
|
skipSslVerificationHttpRequestFactory.setConnectTimeout(5000);
|
|
- restTemplate = new RestTemplate(skipSslVerificationHttpRequestFactory);
|
|
|
|
-
|
|
|
|
- mockRestServiceServer = MockRestServiceServer.createServer(restTemplate);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Test
|
|
|
|
- public void getAppTokenInfo() {
|
|
|
|
- String identityUrl = "http://1.1.1.10:8080";
|
|
|
|
- String appInfoUrl = "/idp/rest/getAppTokenInfo";
|
|
|
|
-
|
|
|
|
- String reqUr = identityUrl + appInfoUrl;
|
|
|
|
- String respBody = "{\n" +
|
|
|
|
- " \"result\": {\n" +
|
|
|
|
- " \"appId\": \"OA\",\n" +
|
|
|
|
- " \"createTime\": \"2022-07-27 14:05:04\",\n" +
|
|
|
|
- " \"expireAt\": \"2022-07-27 14:35:04\",\n" +
|
|
|
|
- " \"Id\": \"eyJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJCQyIsInN1YiI6InRlc3QxMCIsImlhdCI6MTY1ODkwMTkwNCwiZXhwIjoyNzU3ODkwMTkwNCwidHlwZSI6ImFwcCIsIklEIjoiMWIzZjZmNjMtODgyNy00ZjRjLWE1YWEtNDUzMzRmMmRiOGE4IiwiYXBwSWQiOiJPQSIsInVpZCI6Ijk5YjBjZGRlZjdkNTExZWNhNjQ5MDAwYzI5YzQ5YmY1IiwidXNlclRva2VuSWQiOiIxODhiOGMwOS0xODdiLTRiMjAtOTUwYi03ZmY5ZWYwZTY5ZWEiLCJzZXNzaW9uSWQiOiI5NDQ0NjNkZjhkMWVhMzc5OTQ4MmMyZGEwMDg0YzZhYyJ9.zCy21HdojCtmSh_aoxj_gIhbVNlPYbpI9H4ilb1c-HvyxoBdRAoPnEckBjILBUgAXIHfz9W7fsDiQ0Cygb9DWw\",\n" +
|
|
|
|
- " \"userToken\": {\n" +
|
|
|
|
- " \"pId\": \"test10\",\n" +
|
|
|
|
- " \"name\": \"测试10\",\n" +
|
|
|
|
- " \"orgCode\": \"bamboocloud\",\n" +
|
|
|
|
- " \"mId\": \"1\",\n" +
|
|
|
|
- " \"env\": \"1\",\n" +
|
|
|
|
- " \"createTime\": \"2022-07-27 14:04:45\",\n" +
|
|
|
|
- " \"expireAt\": \"2022-07-27 14:35:04\",\n" +
|
|
|
|
- " \"Id\": \"eyJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJCQyIsInN1YiI6InRlc3QxMCIsImlhdCI6MTY1ODkwMTg4NSwiZXhwIjoxNjg0ODIxODg1LCJ0eXBlIjoidXNlciIsIklEIjoiMTg4YjhjMDktMTg3Yi00YjIwLTk1MGItN2ZmOWVmMGU2OWVhIiwicmVtb3RlSXAiOiIxMS4xMS4xMS4xMSIsInNlc3Npb25JZCI6Ijk0NDQ2M2RmOGQxZWEzNzk5NDgyYzJkYTAwODRjNmFjIiwidWlkIjoiOTliMGNkZGVmN2Q1MTFlY2E2NDkwMDBjMjljNDliZjUiLCJvcmdhbml6YXRpb25Db2RlIjoiYmFtYm9vY2xvdWQiLCJkZXZPbmx5SWQiOiIiLCJlcXVpcG1lbnRUeXBlIjoiIn0.5pGkVDtz4KwFytwjQVkmapOV2QI0EO_1x0HifCKfkdWibGjMb4t8ev5oNx59FhM-NO0v2-BH0s3WyQ-XA19Elg\"\n" +
|
|
|
|
- " }\n" +
|
|
|
|
- " },\n" +
|
|
|
|
- " \"status_code\": \"0000\",\n" +
|
|
|
|
- " \"message\": \"success\"\n" +
|
|
|
|
- "} \n";
|
|
|
|
-
|
|
|
|
- mockRestServiceServer.expect(ExpectedCount.once(),
|
|
|
|
- MockRestRequestMatchers.requestTo(URI.create(reqUr))
|
|
|
|
- ).andExpect(MockRestRequestMatchers.method(HttpMethod.POST))
|
|
|
|
- .andRespond(MockRestResponseCreators.withStatus(HttpStatus.OK)
|
|
|
|
- .contentType(MediaType.APPLICATION_JSON)
|
|
|
|
- .body(respBody));
|
|
|
|
-
|
|
|
|
|
|
+ RestTemplate restTemplate = new RestTemplate(skipSslVerificationHttpRequestFactory);
|
|
BimProperties bimProperties = new BimProperties();
|
|
BimProperties bimProperties = new BimProperties();
|
|
bimProperties.setIdentityUrl(identityUrl);
|
|
bimProperties.setIdentityUrl(identityUrl);
|
|
|
|
|
|
- BimBusinessImpl bimBusiness = new BimBusinessImpl();
|
|
|
|
|
|
+ ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
+ // 忽略不对应的字段
|
|
|
|
+ objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
|
|
|
+
|
|
|
|
+ SMFactory smFactory = SMFactory.init(SmTypeEunm.Local);
|
|
|
|
+
|
|
|
|
+ bimBusiness = new BimBusinessImpl();
|
|
bimBusiness.setRestTemplate(restTemplate);
|
|
bimBusiness.setRestTemplate(restTemplate);
|
|
bimBusiness.setBimProperties(bimProperties);
|
|
bimBusiness.setBimProperties(bimProperties);
|
|
|
|
+ bimBusiness.setObjectMapper(objectMapper);
|
|
|
|
+ bimBusiness.setSmFactory(smFactory);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @AfterClass
|
|
|
|
+ public static void stop() {
|
|
|
|
+ runner.stop();
|
|
|
|
+ }
|
|
|
|
|
|
- String appTokenId = "22222";
|
|
|
|
|
|
+ @Test
|
|
|
|
+ public void getAppTokenInfo() {
|
|
|
|
+
|
|
|
|
+ String appTokenId = "eyJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJCQyIsInN1YiI6InpoYW5wZW5nIiwiaWF0IjoxNjg2ODEwOTYzLCJleHAiOjE2ODk0MDI5NjMsInR5cGUiOiJhcHAiLCJJRCI6IjY0ZDBmY2RjLTAyMWMtNGM0My05ZWQxLThkYTgyYzJmYmY5ZiIsImFwcElkIjoiZGVtbzEiLCJ1aWQiOiIyMDIyMTEyOTE2MTEyNDI3NS01NTBCLUNDQTdBRDRBNCIsInVzZXJUb2tlbklkIjoiYjNlYjMzZDItYjI0My00YWQ4LTg5ZjEtOTJkNzljMWNjNTE3Iiwic2Vzc2lvbklkIjoiNjAwMzdiN2JkYjhiNTQ2MWFiYmFmOTNhOWM1ZDZiNTMifQ.C4QagXSAT5k4H9tDoZOS_4DypXIBNi4gZqB_AZQ40eEWhSQAHBTWEik86mxIuu4qCTBMBPJ28kjdXJEDCfgTMQ";
|
|
ZeroTrustAppTokenInfoRespVO appTokenInfo = bimBusiness.getAppTokenInfo(appTokenId);
|
|
ZeroTrustAppTokenInfoRespVO appTokenInfo = bimBusiness.getAppTokenInfo(appTokenId);
|
|
|
|
|
|
Assert.assertNotNull(appTokenInfo);
|
|
Assert.assertNotNull(appTokenInfo);
|
|
- Assert.assertEquals("OA", appTokenInfo.getAppId());
|
|
|
|
- Assert.assertEquals("eyJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJCQyIsInN1YiI6InRlc3QxMCIsImlhdCI6MTY1ODkwMTkwNCwiZXhwIjoyNzU3ODkwMTkwNCwidHlwZSI6ImFwcCIsIklEIjoiMWIzZjZmNjMtODgyNy00ZjRjLWE1YWEtNDUzMzRmMmRiOGE4IiwiYXBwSWQiOiJPQSIsInVpZCI6Ijk5YjBjZGRlZjdkNTExZWNhNjQ5MDAwYzI5YzQ5YmY1IiwidXNlclRva2VuSWQiOiIxODhiOGMwOS0xODdiLTRiMjAtOTUwYi03ZmY5ZWYwZTY5ZWEiLCJzZXNzaW9uSWQiOiI5NDQ0NjNkZjhkMWVhMzc5OTQ4MmMyZGEwMDg0YzZhYyJ9.zCy21HdojCtmSh_aoxj_gIhbVNlPYbpI9H4ilb1c-HvyxoBdRAoPnEckBjILBUgAXIHfz9W7fsDiQ0Cygb9DWw", appTokenInfo.getId());
|
|
|
|
|
|
+ Assert.assertEquals("demo1", appTokenInfo.getAppId());
|
|
|
|
+
|
|
|
|
+ Assert.assertEquals(appTokenId, appTokenInfo.getAppTokenId());
|
|
ZeroTrustAppItemUserTokenInfoRespVO userToken = appTokenInfo.getUserToken();
|
|
ZeroTrustAppItemUserTokenInfoRespVO userToken = appTokenInfo.getUserToken();
|
|
- Assert.assertEquals("eyJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJCQyIsInN1YiI6InRlc3QxMCIsImlhdCI6MTY1ODkwMTg4NSwiZXhwIjoxNjg0ODIxODg1LCJ0eXBlIjoidXNlciIsIklEIjoiMTg4YjhjMDktMTg3Yi00YjIwLTk1MGItN2ZmOWVmMGU2OWVhIiwicmVtb3RlSXAiOiIxMS4xMS4xMS4xMSIsInNlc3Npb25JZCI6Ijk0NDQ2M2RmOGQxZWEzNzk5NDgyYzJkYTAwODRjNmFjIiwidWlkIjoiOTliMGNkZGVmN2Q1MTFlY2E2NDkwMDBjMjljNDliZjUiLCJvcmdhbml6YXRpb25Db2RlIjoiYmFtYm9vY2xvdWQiLCJkZXZPbmx5SWQiOiIiLCJlcXVpcG1lbnRUeXBlIjoiIn0.5pGkVDtz4KwFytwjQVkmapOV2QI0EO_1x0HifCKfkdWibGjMb4t8ev5oNx59FhM-NO0v2-BH0s3WyQ-XA19Elg", userToken.getId());
|
|
|
|
- Assert.assertEquals("1", userToken.getMid());
|
|
|
|
- Assert.assertEquals("test10", userToken.getPid());
|
|
|
|
|
|
+ String userTokenId = "eyJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJCQyIsInN1YiI6InpoYW5wZW5nIiwiaWF0IjoxNjg2ODEwODU4LCJleHAiOjE2ODk0MDI4NTgsInR5cGUiOiJ1c2VyIiwiSUQiOiJiM2ViMzNkMi1iMjQzLTRhZDgtODlmMS05MmQ3OWMxY2M1MTciLCJyZW1vdGVJcCI6IjEyNy4wLjAuMSIsInNlc3Npb25JZCI6IjYwMDM3YjdiZGI4YjU0NjFhYmJhZjkzYTljNWQ2YjUzIiwidWlkIjoiMjAyMjExMjkxNjExMjQyNzUtNTUwQi1DQ0E3QUQ0QTQiLCJvcmdhbml6YXRpb25Db2RlIjoiYmFtYm9vY2xvdWQiLCJkZXZPbmx5SWQiOiIiLCJlcXVpcG1lbnRUeXBlIjoicGMifQ.opQczo6NVMuafO2ruKCCpT1YdrsKLP2vlUnETyPR8Al-CijmIgqE0oW_BkOJaCP_UX-BYLLhoPBDFriI5IrLMg";
|
|
|
|
+
|
|
|
|
+ Assert.assertEquals(userTokenId, userToken.getUserTokenId());
|
|
|
|
+ Assert.assertEquals("", userToken.getMid());
|
|
|
|
+ Assert.assertEquals("zhanpeng", userToken.getPid());
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Test
|
|
|
|
+ public void checkUserTokenSign() {
|
|
|
|
+ HashMap<String, Object> stringObjectHashMap = new HashMap<>();
|
|
|
|
+ stringObjectHashMap.put("userTokenId", "1111111111111111");
|
|
|
|
+ stringObjectHashMap.put("createTime", "2023-05-30 17:32:45");
|
|
|
|
+ stringObjectHashMap.put("expireAt", "2023-05-30 19:32:45");
|
|
|
|
+ stringObjectHashMap.put("pid", "test");
|
|
|
|
+ stringObjectHashMap.put("orgCode", "1111");
|
|
|
|
+ stringObjectHashMap.put("ip", "127.0.0.1");
|
|
|
|
+ stringObjectHashMap.put("mid", "2222");
|
|
|
|
+ stringObjectHashMap.put("env", "pc");
|
|
|
|
+ stringObjectHashMap.put("sign", "4023c48d904bb2f908d5be02c867d5bbc1fe8ec590f583c76f970d3feff309a7");
|
|
|
|
+
|
|
|
|
+ boolean checkUserTokenSign = bimBusiness.checkUserTokenSign(stringObjectHashMap);
|
|
|
|
+ Assert.assertTrue(checkUserTokenSign);
|
|
|
|
+
|
|
|
|
+ stringObjectHashMap.put("env", "1222");
|
|
|
|
+ boolean checkUserTokenSign1 = bimBusiness.checkUserTokenSign(stringObjectHashMap);
|
|
|
|
+ Assert.assertFalse(checkUserTokenSign1);
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|