Skip to content

Commit 2374f9e

Browse files
authored
Merge pull request #299 from iExecBlockchainComputing/feature/nontee
Fix non TEE workflow
2 parents 342cf90 + 6082992 commit 2374f9e

File tree

3 files changed

+27
-6
lines changed

3 files changed

+27
-6
lines changed

src/main/java/com/iexec/worker/feign/CustomResultFeignClient.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,15 @@ public Optional<Eip712Challenge> getResultChallenge(Integer chainId) {
3838
return is2xxSuccess(response) ? Optional.of(response.getBody()) : Optional.empty();
3939
}
4040

41+
public String login(Integer chainId, String signedEip712Challenge) {
42+
Map<String, Object> arguments = new HashMap<>();
43+
arguments.put("chainId", chainId);
44+
arguments.put("signedEip712Challenge", signedEip712Challenge);
45+
HttpCall<String> httpCall = (args) -> resultClient.login((Integer) args.get("chainId"), (String) args.get("signedEip712Challenge"));
46+
ResponseEntity<String> response = makeHttpCall(httpCall, arguments, "login to result proxy");
47+
return is2xxSuccess(response) ? response.getBody() : "";
48+
}
49+
4150
public String uploadResult(String authorizationToken, ResultModel resultModel) {
4251
Map<String, Object> arguments = new HashMap<>();
4352
arguments.put("authorizationToken", authorizationToken);
@@ -46,7 +55,7 @@ public String uploadResult(String authorizationToken, ResultModel resultModel) {
4655
HttpCall<String> httpCall = (args) ->
4756
resultClient.uploadResult((String) args.get("authorizationToken"), (ResultModel) args.get("resultModel"));
4857

49-
ResponseEntity<String> response = makeHttpCall(httpCall, arguments, "getResultChallenge");
58+
ResponseEntity<String> response = makeHttpCall(httpCall, arguments, "uploadResult");
5059
return is2xxSuccess(response) ? response.getBody() : "";
5160
}
5261
}

src/main/java/com/iexec/worker/feign/client/ResultClient.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,12 @@ public interface ResultClient {
1818
@GetMapping("/results/challenge")
1919
ResponseEntity<Eip712Challenge> getChallenge(@RequestParam(name = "chainId") Integer chainId) throws FeignException;
2020

21+
@GetMapping("/results/login")
22+
ResponseEntity<String> login(@RequestParam(name = "chainId") Integer chainId,
23+
@RequestBody String signedEip712Challenge) throws FeignException;
24+
2125
@PostMapping("/results")
22-
ResponseEntity<String> uploadResult(@RequestHeader("Authorization") String customToken,
26+
ResponseEntity<String> uploadResult(@RequestHeader("Authorization") String authorizationToken,
2327
@RequestBody ResultModel resultModel);
2428

2529
}

src/main/java/com/iexec/worker/result/ResultService.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -385,11 +385,17 @@ public String uploadResultAndGetLink(String chainTaskId) {
385385
}
386386

387387
String authorizationToken = getIexecUploadToken();
388+
if (authorizationToken.isEmpty()) {
389+
log.error("Empty authorizationToken, cannot upload result [chainTaskId:{}]", chainTaskId);
390+
return "";
391+
}
388392

393+
log.info("Got upload authorization token [chainTaskId:{}]", chainTaskId);
389394
return customResultFeignClient.uploadResult(authorizationToken, getResultModelWithZip(chainTaskId));
390395
}
391396

392397
public String getIexecUploadToken() {
398+
// get challenge
393399
Integer chainId = publicConfigService.getChainId();
394400
Optional<Eip712Challenge> oEip712Challenge = customResultFeignClient.getResultChallenge(chainId);
395401

@@ -399,16 +405,18 @@ public String getIexecUploadToken() {
399405

400406
Eip712Challenge eip712Challenge = oEip712Challenge.get();
401407

408+
// sign challenge
402409
ECKeyPair ecKeyPair = credentialsService.getCredentials().getEcKeyPair();
403-
String authorizationToken = Eip712ChallengeUtils.buildAuthorizationToken(eip712Challenge,
410+
String signedEip712Challenge = Eip712ChallengeUtils.buildAuthorizationToken(eip712Challenge,
404411
workerConfigService.getWorkerWalletAddress(), ecKeyPair);
405412

406-
if (authorizationToken.isEmpty()) {
413+
if (signedEip712Challenge.isEmpty()) {
407414
return "";
408415
}
409-
return authorizationToken;
410-
}
411416

417+
// login
418+
return customResultFeignClient.login(chainId, signedEip712Challenge);
419+
}
412420

413421
public boolean isResultAvailable(String chainTaskId) {
414422
boolean isResultZipFound = isResultZipFound(chainTaskId);

0 commit comments

Comments
 (0)