Skip to content

Commit 70ba9fa

Browse files
authored
fix non-pir service publish auth bug (#188)
* fix non-pir service publish auth bug * update logo
1 parent 07979a1 commit 70ba9fa

File tree

5 files changed

+65
-52
lines changed

5 files changed

+65
-52
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# WeDPR
22

3-
![](https://wedpr-lab.readthedocs.io/zh_CN/latest/_static/images/wedpr_logo.png)
3+
![](./static/images/wedpr_logo.png)
44

55

66
[![CodeFactor](https://www.codefactor.io/repository/github/webankblockchain/wedpr/badge?s=a4c3fb6ffd39e7618378fe13b6bd06c5846cc103)](https://www.codefactor.io/repository/github/webankblockchain/wedpr)

static/images/wedpr_logo.png

23.6 KB
Loading

wedpr-components/service-publish/src/main/java/com/webank/wedpr/components/publish/config/ServicePublisherLoader.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import com.webank.wedpr.components.hook.ServiceHook;
88
import com.webank.wedpr.components.loadbalancer.LoadBalancer;
99
import com.webank.wedpr.components.publish.helper.PublishServiceHelper;
10-
import com.webank.wedpr.components.publish.hook.PirServicePublishCallback;
10+
import com.webank.wedpr.components.publish.hook.ServicePublishCallback;
1111
import com.webank.wedpr.components.publish.sync.PublishSyncer;
1212
import com.webank.wedpr.components.publish.sync.PublishSyncerCommitHandler;
1313
import com.webank.wedpr.components.publish.sync.api.PublishSyncerApi;
@@ -47,10 +47,15 @@ public class ServicePublisherLoader {
4747
@PostConstruct
4848
public void init() {
4949
logger.info("Register serviceCallback");
50-
serviceHook.registerServiceCallback(
51-
PublishServiceHelper.PublishType.PIR.getType(),
52-
new PirServicePublishCallback(
53-
loadBalancer, new WeDPRResponseFactory(), serviceAuthMapper));
50+
51+
ServicePublishCallback callback =
52+
new ServicePublishCallback(
53+
loadBalancer, new WeDPRResponseFactory(), serviceAuthMapper);
54+
55+
for (PublishServiceHelper.PublishType publishType :
56+
PublishServiceHelper.PublishType.values()) {
57+
serviceHook.registerServiceCallback(publishType.getType(), callback);
58+
}
5459
logger.info("Register serviceCallback success");
5560
}
5661

Lines changed: 50 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,22 @@
2525
import com.webank.wedpr.components.loadbalancer.LoadBalancer;
2626
import com.webank.wedpr.components.publish.config.ServicePublisherConfig;
2727
import com.webank.wedpr.components.publish.entity.request.PublishCreateRequest;
28+
import com.webank.wedpr.components.publish.helper.PublishServiceHelper;
2829
import com.webank.wedpr.sdk.jni.transport.model.ServiceMeta;
2930
import java.util.ArrayList;
3031
import java.util.List;
3132
import org.slf4j.Logger;
3233
import org.slf4j.LoggerFactory;
3334
import org.springframework.http.HttpStatus;
3435

35-
public class PirServicePublishCallback implements ServiceHook.ServiceCallback {
36-
private static final Logger logger = LoggerFactory.getLogger(PirServicePublishCallback.class);
36+
public class ServicePublishCallback implements ServiceHook.ServiceCallback {
37+
private static final Logger logger = LoggerFactory.getLogger(ServicePublishCallback.class);
3738

3839
private final LoadBalancer loadBalancer;
3940
private final BaseResponseFactory responseFactory;
4041
private final ServiceAuthMapper serviceAuthMapper;
4142

42-
public PirServicePublishCallback(
43+
public ServicePublishCallback(
4344
LoadBalancer loadBalancer,
4445
BaseResponseFactory responseFactory,
4546
ServiceAuthMapper serviceAuthMapper) {
@@ -71,50 +72,56 @@ public void batchInsertServiceAuthInfo(
7172
@Override
7273
public void onPublish(Object serviceInfo) throws Exception {
7374
PublishCreateRequest publishedServiceInfo = (PublishCreateRequest) serviceInfo;
74-
ServiceMeta.EntryPointMeta selectedEntryPoint =
75-
loadBalancer.selectService(
76-
LoadBalancer.Policy.ROUND_ROBIN,
77-
Common.getServiceName(
78-
WeDPRCommonConfig.getAgency(), ServiceName.PIR.getValue()),
79-
WeDPRCommonConfig.getWedprZone(),
80-
null);
81-
if (selectedEntryPoint == null) {
82-
throw new WeDPRException(
83-
"Publish service "
84-
+ publishedServiceInfo.getServiceId()
85-
+ " failed for not found "
86-
+ publishedServiceInfo.getServiceId()
87-
+ " service!");
88-
}
89-
String url =
90-
selectedEntryPoint.getUrl(ServicePublisherConfig.getPirPublishServiceUriPath());
91-
logger.info("onPublish, serviceInfo: {}, target: {}", publishedServiceInfo.toString(), url);
92-
HttpClientImpl httpClient =
93-
new HttpClientImpl(
94-
url,
95-
ServicePublisherConfig.getMaxTotalConnection(),
96-
ServicePublisherConfig.buildConfig(),
97-
responseFactory);
98-
BaseResponse response = httpClient.executePost(publishedServiceInfo, HttpStatus.OK.value());
99-
if (response == null) {
100-
throw new WeDPRException(
101-
"publish service: "
102-
+ publishedServiceInfo.getServiceId()
103-
+ " for no response received!");
104-
}
105-
if (!response.statusOk()) {
106-
throw new WeDPRException(
107-
"publish service: "
108-
+ publishedServiceInfo.getServiceId()
109-
+ " failed, response: "
110-
+ response.serialize());
75+
if (publishedServiceInfo.getPublishType() == PublishServiceHelper.PublishType.PIR) {
76+
ServiceMeta.EntryPointMeta selectedEntryPoint =
77+
loadBalancer.selectService(
78+
LoadBalancer.Policy.ROUND_ROBIN,
79+
Common.getServiceName(
80+
WeDPRCommonConfig.getAgency(), ServiceName.PIR.getValue()),
81+
WeDPRCommonConfig.getWedprZone(),
82+
null);
83+
if (selectedEntryPoint == null) {
84+
throw new WeDPRException(
85+
"Publish service "
86+
+ publishedServiceInfo.getServiceId()
87+
+ " failed for not found "
88+
+ publishedServiceInfo.getServiceId()
89+
+ " service!");
90+
}
91+
String url =
92+
selectedEntryPoint.getUrl(ServicePublisherConfig.getPirPublishServiceUriPath());
93+
logger.info(
94+
"onPublish, serviceInfo: {}, target: {}", publishedServiceInfo.toString(), url);
95+
HttpClientImpl httpClient =
96+
new HttpClientImpl(
97+
url,
98+
ServicePublisherConfig.getMaxTotalConnection(),
99+
ServicePublisherConfig.buildConfig(),
100+
responseFactory);
101+
BaseResponse response =
102+
httpClient.executePost(publishedServiceInfo, HttpStatus.OK.value());
103+
if (response == null) {
104+
throw new WeDPRException(
105+
"publish service: "
106+
+ publishedServiceInfo.getServiceId()
107+
+ " for no response received!");
108+
}
109+
if (!response.statusOk()) {
110+
throw new WeDPRException(
111+
"publish service: "
112+
+ publishedServiceInfo.getServiceId()
113+
+ " failed, response: "
114+
+ response.serialize());
115+
}
116+
logger.info(
117+
"pir onPublish success, service: {}, target: {}",
118+
publishedServiceInfo.getServiceId(),
119+
url);
111120
}
112121
// register auth information
113122
batchInsertServiceAuthInfo(publishedServiceInfo.getServiceId(), publishedServiceInfo);
114123
logger.info(
115-
"onPublish success, service: {}, target: {}",
116-
publishedServiceInfo.getServiceId(),
117-
url);
124+
"onPublish success, service: {}, target: {}", publishedServiceInfo.getServiceId());
118125
}
119126

120127
@Override

wedpr-components/service-publish/src/main/java/com/webank/wedpr/components/publish/service/impl/WedprPublishedServiceServiceImpl.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.webank.wedpr.components.publish.entity.request.PublishSearchRequest;
1919
import com.webank.wedpr.components.publish.entity.response.WedprPublishCreateResponse;
2020
import com.webank.wedpr.components.publish.entity.response.WedprPublishSearchResponse;
21+
import com.webank.wedpr.components.publish.helper.PublishServiceHelper;
2122
import com.webank.wedpr.components.publish.service.WedprPublishedServiceService;
2223
import com.webank.wedpr.components.publish.sync.api.PublishSyncerApi;
2324
import java.util.Arrays;
@@ -71,9 +72,9 @@ public WeDPRResponse createPublishService(String username, PublishCreateRequest
7172
publishCreate.checkServiceConfig(datasetMapper, username, WeDPRCommonConfig.getAgency());
7273
publishCreate.setStatus(ServiceStatus.Publishing.getStatus());
7374
this.publishedServiceMapper.insertServiceInfo(publishCreate);
74-
boolean hasHook = this.serviceHook.onPublish(publishCreate.getServiceType(), publishCreate);
75-
// without hook, set the status to success directly
76-
if (!hasHook) {
75+
this.serviceHook.onPublish(publishCreate.getServiceType(), publishCreate);
76+
// non-pir service publish, set the status to success directly
77+
if (!publishCreate.getPublishType().equals(PublishServiceHelper.PublishType.PIR)) {
7778
PublishedServiceInfo updatedServiceInfo =
7879
new PublishedServiceInfo(publishCreate.getServiceId());
7980
updatedServiceInfo.setServiceStatus(ServiceStatus.PublishSuccess);

0 commit comments

Comments
 (0)