Project

General

Profile

« Previous | Next » 

Revision 60369

[Trunk | Orcid Service]:
1. orcidservice.properties: Added properties "apiURL", "tokenURL", "clientId", "clientSecret" for ORCID API.
2. log4j.properties: Added configuration for ORCID log file "uoa-orcid-service-orcid.log".
3. UoaOrcidServiceApplication.java: Added "OrcidConfig.class" in "@EnableConfigurationProperties".
4. SimpleErrorController.java: If body.path.contains("/uoa-orcid-service/orcid"), log error in ORCID log file too.
5. UserTokensService.java: Added method "getEncryptedUserTokensByAai()".
6. UserTokensController.java:
a. Added ORCID log file for responses by ORCID API.
b. Added @Autowired OrcidConfig for getting ORICD token url, client and secret from properties.
c. Added method "getUserOrcidId()" (/local/orcidId)
d. Added method "getPersonalDetailsFromOrcid()" (/orcid/personal-details)
e. Renamed "/orcid/tokens/decrypt" to "/local/tokens/decrypt" & "/orcid/tokens/encrypt" to "/local/tokens/encrypt".
7. Work.java: Added field "updateDate".
8. WorkDAO.java & MongoDBWorkDAO.java: Added methods "List<Work> findByOrcidOrderByCreationDateDesc(String Orcid);" and "Work findByPutCode(String putCode);".
9. WorkService.java:
a. Added method "getLocalWorkByPutCode()".
b. Method "getLocalWorks()" returns works ordered by most recent creation date.
10. WorkController.java:
a. Added ORCID log file for responses by ORCID API.
b. Added @Autowired OrcidConfig for getting ORICD token url, client and secret from properties.
c. Added "charset=UTF-8" in all Content-Type request headers.
d. Renamed "/orcid/put-code" to "/local/put-code".
e. Added method "List<List getLocalWorks(@RequestBody String[][] pids)" (/local/works).
f. Added method "List<Work> getMyLocalWorks()" (/local/works).
g. Added method "updateWork()" (/orcid/work/update/{putCode}).
h. Added method "getWorksByPutCodes()" (/orcid/works).

View differences:

modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/handlers/ExceptionsHandler.java
87 87
//    @ExceptionHandler(Exception.class)
88 88
//    public ResponseEntity<ExceptionResponse> exception(Exception ex) {
89 89
//        ExceptionResponse response = new ExceptionResponse();
90
//        response.setErrorCode();
90
//        response.setErrorCode("Internal server error");
91 91
//        response.setErrorMessage("Exception");
92 92
//        response.setErrors(ex.getMessage());
93 93
//        response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR);
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/dao/WorkDAO.java
15 15

  
16 16
    List<Work> findByPidsInAndOrcid(String[] Pids, String Orcid);
17 17

  
18
    List<Work> findByOrcidOrderByCreationDateDesc(String Orcid);
18 19
    List<Work> findByOrcid(String Orcid);
19 20

  
21
    Work findByPutCode(String putCode);
22

  
20 23
    Work save(Work work);
21 24

  
22 25
    void deleteAll();
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/dao/MongoDBDAOs/MongoDBWorkDAO.java
17 17

  
18 18
    List<Work> findByPidsInAndOrcid(List<String> Pids, String Orcid);
19 19

  
20
    List<Work> findByOrcidOrderByCreationDateDesc(String Orcid);
20 21
    List<Work> findByOrcid(String Orcid);
21 22

  
23
    Work findByPutCode(String putCode);
24

  
22 25
    Work save(Work work);
23 26

  
24 27
    void deleteAll();
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/services/UserTokensService.java
160 160
        UserTokens userTokens = userTokensDAO.findByAaiId(aaiId);
161 161
        return decryptTokens(userTokens);
162 162
    }
163

  
164
    public UserTokens getEncryptedUserTokensByAai(String aaiId) {
165
        log.debug("getEncryptedUserTokensByAai");
166
        return userTokensDAO.findByAaiId(aaiId);
167
    }
163 168
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/services/WorkService.java
35 35
    }
36 36

  
37 37
    public List<Work> getLocalWorks(String orcid) {
38
        return workDAO.findByOrcid(orcid);
38
        return workDAO.findByOrcidOrderByCreationDateDesc(orcid);
39
//        return workDAO.findByOrcid(orcid);
39 40
    }
41

  
42
    public Work getLocalWorkByPutCode(String puutCode) {
43
        return workDAO.findByPutCode(puutCode);
44
    }
40 45
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/entities/Work.java
14 14
    private String putCode;
15 15
    private String orcid;
16 16
    private Date creationDate;
17
    private Date updateDate;
17 18

  
18 19
    public String getId() {
19 20
        return id;
......
54 55
    public void setCreationDate(Date creationDate) {
55 56
        this.creationDate = creationDate;
56 57
    }
58

  
59
    public Date getUpdateDate() {
60
        return updateDate;
61
    }
62

  
63
    public void setUpdateDate(Date updateDate) {
64
        this.updateDate = updateDate;
65
    }
57 66
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/controllers/UserTokensController.java
1 1
package eu.dnetlib.uoaorcidservice.controllers;
2 2

  
3
import eu.dnetlib.uoaorcidservice.configuration.properties.OrcidConfig;
3 4
import eu.dnetlib.uoaorcidservice.entities.UserTokens;
4 5
import eu.dnetlib.uoaorcidservice.handlers.utils.AESUtils;
6
import eu.dnetlib.uoaorcidservice.responses.SingleValueWrapperResponse;
5 7
import eu.dnetlib.uoaorcidservice.services.UserTokensService;
6 8
import org.apache.log4j.Logger;
7 9
import org.springframework.beans.factory.annotation.Autowired;
8 10
import org.springframework.http.*;
11
import org.springframework.security.access.AuthorizationServiceException;
9 12
import org.springframework.security.access.prepost.PreAuthorize;
10 13
import org.springframework.web.bind.annotation.*;
11 14
import org.springframework.web.client.DefaultResponseErrorHandler;
......
23 26
import java.util.List;
24 27

  
25 28
@RestController
26
@RequestMapping("/orcid")
29
//@RequestMapping("/orcid")
27 30
@CrossOrigin(origins = "*")
28 31
public class UserTokensController {
29 32
    private final Logger log = Logger.getLogger(this.getClass());
33
    private final Logger orcid_log = Logger.getLogger("ORCID-"+this.getClass().getName());
30 34

  
31 35
    @Autowired
36
    private OrcidConfig orcidConfig;
37

  
38
    @Autowired
32 39
    private UserTokensService userTokensService;
33 40

  
34 41
//    @RequestMapping(value = "/tokens", method = RequestMethod.GET)
......
41 48
//        return "\""+userTokensService.getUserAccessToken(orcid)+"\"";
42 49
//    }
43 50

  
51
    @RequestMapping(value = "/local/orcidId", method = RequestMethod.GET)
52
    public SingleValueWrapperResponse<String> getUserOrcidId() throws BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, IOException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeySpecException {
53
        UserTokens userTokens = userTokensService.getUserTokens();
54
        if(userTokens == null) {
55
            throw new AuthorizationServiceException("User is not registered");
56
        }
57
        String userOrcid = userTokens.getOrcid();
58
        return new SingleValueWrapperResponse<String>(userOrcid);
59
    }
60

  
44 61
    @PreAuthorize("isAuthenticated()")
45
    @RequestMapping(value = "/token/save", method = RequestMethod.GET)
46
    public String saveUserTokens(@RequestParam String code) throws BadPaddingException, InvalidAlgorithmParameterException, NoSuchAlgorithmException, IllegalBlockSizeException, NoSuchPaddingException, InvalidKeyException, InvalidKeySpecException, IOException {
62
    @RequestMapping(value = "/orcid/token/save", method = RequestMethod.GET)
63
    public String saveUserTokens(@RequestParam String code
64
//            , @RequestParam String redirect_uri
65
    ) throws BadPaddingException, InvalidAlgorithmParameterException, NoSuchAlgorithmException, IllegalBlockSizeException, NoSuchPaddingException, InvalidKeyException, InvalidKeySpecException, IOException {
47 66
        log.debug("saveUserTokens: code="+code);
48 67

  
49
        String url = "https://sandbox.orcid.org/oauth/token";
50
        String clientId = "APP-A5M3KTX6NCN67L91";
51
        String clientSecret = "96b20d71-ae06-4286-bb00-9172536c1ad4";
68
        String url = orcidConfig.getTokenURL();//"https://sandbox.orcid.org/oauth/token";
69
        String clientId = orcidConfig.getClientId();//"APP-A5M3KTX6NCN67L91";
70
        String clientSecret = orcidConfig.getClientSecret();//"96b20d71-ae06-4286-bb00-9172536c1ad4";
52 71

  
53 72

  
54 73
        RestTemplate restTemplate = new RestTemplate();
......
64 83
                "client_id="+clientId
65 84
                        +"&client_secret="+clientSecret
66 85
                        +"&grant_type=authorization_code"
67
                        +"&code="+code
68
                        +"&redirect_uri=http://duffy.di.uoa.gr:4300/orcid";
69
        log.debug(inputString);
86
                        +"&code="+code;
87
//                        +"&redirect_uri="+redirect_uri;//http://duffy.di.uoa.gr:4300/orcid";
70 88

  
71 89
        HttpEntity<String> request = new HttpEntity<>(inputString, headers);
72
        //logger.info(restTemplate.exchange(fooResourceUrl, HttpMethod.GET, request, Object.class));
90
        orcid_log.info("url: "+url);
91
        orcid_log.info("request: "+request);
92

  
73 93
        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, request, String.class);
74 94
        if(response.getStatusCode() != HttpStatus.OK) {
75
            log.debug("User tokens response code is: " + response.getStatusCode());
76
            log.debug(response.getBody());
95
            orcid_log.error("User tokens response code is: " + response.getStatusCode());
96
            orcid_log.error("Unexpected Response: "+response.getBody());
77 97
            return null;
78 98
        } else {
79
            log.debug(response);
99
            orcid_log.info("Response: "+response);
80 100

  
81 101
            UserTokens userTokens = userTokensService.json2UserTokens(response.getBody().toString());
82 102
                userTokensService.saveUserTokens(userTokens);
83 103

  
84 104
            return "\""+userTokens.getAccessToken()+"\"";
85 105
        }
106
    }
86 107

  
87
//        try {
88
//            URL obj = new URL(url);
89
//
90
//            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
91
//            con.setRequestMethod("POST");
92
//            con.setDoOutput(true);
93
//            con.setInstanceFollowRedirects(true);
94
//            con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
95
//            con.setRequestProperty("Accept", "application/json");
96
//
97
//            String inputString =
98
//                    "client_id="+clientId
99
//                    +"&client_secret="+clientSecret
100
//                    +"&grant_type=authorization_code"
101
//                    +"&code="+code
102
//                    +"&redirect_uri=http://duffy.di.uoa.gr:4300/orcid";
103
//
104
//            log.debug(inputString);
105
//
106
//            try(OutputStream os = con.getOutputStream()) {
107
////                byte[] input = inputString.getBytes();
108
////                os.write(inputString, 0, inputString.length());
109
//
110
//                OutputStreamWriter osw = new OutputStreamWriter(os);
111
//                osw.write(inputString);
112
//                osw.flush();
113
//                osw.close();
114
//
115
//                os.close();  //don't forget to close the OutputStream
116
//                log.debug("http request body added");
117
//            } catch (Exception e) {
118
//                log.error("Failed to add http request body", e);
119
//            }
120
//
121
//            con.connect();
122
//
123
////            log.debug(con.getRequestMethod());
124
////            log.debug(con.getErrorStream());
125
////            log.debug(con.getContent());
126
//
127
//
128
//            if (con.getResponseCode() != 200) {
129
//                log.debug("User tokens response code is: " + con.getResponseCode());
130
//                return null;
131
//            } else {
132
//                BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
133
//                StringBuilder response = new StringBuilder();
134
//                String inputLine;
135
//                while ((inputLine = in.readLine()) != null) {
136
//                    response.append(inputLine).append("\n");
137
//                }
138
//                in.close();
139
//                log.debug(response);
140
//
141
//                UserTokens userTokens = userTokensService.json2UserTokens(response.toString());
142
//                userTokensService.saveUserTokens(userTokens);
143
//
144
//                return "\""+userTokens.getAccessToken()+"\"";
145
//            }
146
//
147
//        } catch (Exception e) {
148
//            log.error("An error occured while trying to fetch user tokens ", e);
149
//            return null;
150
//        }
108
    @RequestMapping(value = "/orcid/personal-details", method = RequestMethod.GET)
109
    public String getPersonalDetailsFromOrcid() throws BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, IOException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeySpecException {
110
        log.debug("getPersonalDetailsFromOrcid");
111

  
112
        UserTokens userTokens = userTokensService.getUserTokens();
113
        if(userTokens == null) {
114
            throw new AuthorizationServiceException("User is not registered");
115
        }
116
        String userOrcid = userTokens.getOrcid();
117
        String userAccessToken = userTokens.getAccessToken();
118

  
119
        if(userOrcid == null || userAccessToken == null) {
120
            throw new AuthorizationServiceException("User is not registered");
121
        }
122

  
123
//        log.debug("Access token: " + userAccessToken);
124
//        log.debug("User orcid: " + userOrcid);
125

  
126
        String url = orcidConfig.getApiURL()+userOrcid+"/personal-details";
127

  
128
        RestTemplate restTemplate = new RestTemplate();
129
        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
130
            protected boolean hasError(HttpStatus statusCode) {
131
                return false;
132
            }
133
        });
134
        HttpHeaders headers = new HttpHeaders();
135
        headers.add("Accept", "application/json");
136
        headers.add("Authorization", "Bearer " + userAccessToken);
137
        headers.add("Content-Type", "application/orcid+json");
138
        HttpEntity<String> request = new HttpEntity<>(headers);
139

  
140
        orcid_log.info("request: "+request);
141
        orcid_log.info("url: "+url);
142
        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class);
143
        if (response.getStatusCode() != HttpStatus.OK) {
144
            orcid_log.error("Getting user details response code is: " + response.getStatusCode());
145
            orcid_log.error("Unexpected Response: "+response.getBody());
146
            return null;
147
        } else {
148
            orcid_log.info("response: "+response);
149
            return response.getBody().toString();
150
        }
151 151
    }
152 152

  
153

  
153 154
    @PreAuthorize("isAuthenticated()")
154
    @RequestMapping(value = "/tokens/decrypt", method = RequestMethod.GET)
155
    @RequestMapping(value = "/local/tokens/decrypt", method = RequestMethod.GET)
155 156
    public UserTokens decryptToken(@RequestParam String aaiId) throws NoSuchPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, BadPaddingException, InvalidAlgorithmParameterException, InvalidKeySpecException, IOException {
156 157
        return userTokensService.getUserTokensByAai(aaiId);
157 158
    }
158 159

  
160

  
161
    @PreAuthorize("isAuthenticated()")
162
    @RequestMapping(value = "/local/tokens/encrypt", method = RequestMethod.GET)
163
    public UserTokens encryptToken(@RequestParam String aaiId) throws NoSuchPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, BadPaddingException, InvalidAlgorithmParameterException, InvalidKeySpecException, IOException {
164
        UserTokens userTokens = userTokensService.getEncryptedUserTokensByAai(aaiId);
165
        return userTokensService.encryptTokens(userTokens);
166
    }
159 167
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/controllers/WorkController.java
2 2

  
3 3
import com.google.gson.Gson;
4 4
import com.google.gson.GsonBuilder;
5
import eu.dnetlib.uoaorcidservice.configuration.properties.OrcidConfig;
5 6
import eu.dnetlib.uoaorcidservice.entities.ResultIdAndWork;
6 7
import eu.dnetlib.uoaorcidservice.entities.UserTokens;
7 8
import eu.dnetlib.uoaorcidservice.entities.Work;
......
11 12
import eu.dnetlib.uoaorcidservice.services.WorkService;
12 13
import org.apache.log4j.Logger;
13 14
import org.springframework.beans.factory.annotation.Autowired;
15
import org.springframework.data.util.Pair;
14 16
import org.springframework.http.*;
15 17
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
18
import org.springframework.security.access.AccessDeniedException;
16 19
import org.springframework.security.access.AuthorizationServiceException;
17 20
import org.springframework.security.access.prepost.PreAuthorize;
18 21
import org.springframework.web.bind.annotation.*;
......
28 31
import java.security.InvalidKeyException;
29 32
import java.security.NoSuchAlgorithmException;
30 33
import java.security.spec.InvalidKeySpecException;
31
import java.util.ArrayList;
32
import java.util.Date;
33
import java.util.List;
34
import java.util.*;
34 35

  
35 36
@RestController
36
@RequestMapping("/orcid")
37
//@RequestMapping("/orcid")
37 38
@CrossOrigin(origins = "*")
38 39
public class WorkController {
39 40
    private final Logger log = Logger.getLogger(this.getClass());
41
    private final Logger orcid_log = Logger.getLogger("ORCID-"+this.getClass().getName());
40 42

  
41 43
    @Autowired
44
    private OrcidConfig orcidConfig;
45

  
46
    @Autowired
42 47
    private UserTokensService userTokensService;
43 48

  
44 49
    @Autowired
45 50
    private WorkService workService;
46 51

  
47 52
    @PreAuthorize("isAuthenticated()")
48
    @RequestMapping(value = "put-code", method = RequestMethod.GET)
53
    @RequestMapping(value = "/local/put-code", method = RequestMethod.GET)
49 54
    public List<String> getPutCode(@RequestParam String[] pids) {
50 55
        String userOrcid = userTokensService.getCurrentUserOrcid();
51 56
        List<Work> works = workService.getWorks(pids, userOrcid);
......
60 65
    }
61 66

  
62 67
    @PreAuthorize("isAuthenticated()")
63
    @RequestMapping(value = "put-codes", method = RequestMethod.POST)
68
    @RequestMapping(value = "/local/put-codes", method = RequestMethod.POST)
64 69
    public List<List<String>> getPutCodes(@RequestBody String[][] pids) {
65 70
        String userOrcid = userTokensService.getCurrentUserOrcid();
66 71
        List<List<String>> putCodes = new ArrayList();
......
80 85
    }
81 86

  
82 87
    @PreAuthorize("isAuthenticated()")
83
    @RequestMapping(value = "/work/save", method = RequestMethod.POST)
84
    public String saveWork(@RequestBody String resultString) throws IOException, BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeySpecException {
88
    @RequestMapping(value = "/local/works", method = RequestMethod.POST)
89
    public List<List<Work>> getLocalWorks(@RequestBody String[][] pids) {
90
        String userOrcid = userTokensService.getCurrentUserOrcid();
91
        if(userOrcid == null) {
92
            throw new AuthorizationServiceException("User is not registered");
93
        }
94

  
95
        List<List<Work>> returnedWorks = new ArrayList();
96
        for(int i=0; i<pids.length; i++) {
97
            List<Work> works = workService.getWorks(pids[i], userOrcid);
98
            returnedWorks.add(works);
99
        }
100
        return returnedWorks;
101
    }
102

  
103
    @PreAuthorize("isAuthenticated()")
104
    @RequestMapping(value = "/orcid/work/save", method = RequestMethod.POST)
105
    public Work saveWork(@RequestBody String resultString) throws Exception {
85 106
        log.debug("saveWork: result = " + resultString);
86 107

  
87 108
        Gson gson = new GsonBuilder().create();
......
98 119
            throw new AuthorizationServiceException("User is not registered");
99 120
        }
100 121

  
101
        log.debug("Access token: " + userAccessToken);
102
        log.debug("User orcid: " + userOrcid);
122
//        log.debug("Access token: " + userAccessToken);
123
//        log.debug("User orcid: " + userOrcid);
103 124

  
104 125
        String url = "https://api.sandbox.orcid.org/v3.0/" + userOrcid + "/work";
105 126

  
......
109 130
        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
110 131
            protected boolean hasError(HttpStatus statusCode) {
111 132
                if(statusCode == HttpStatus.UNAUTHORIZED) {
133
                    orcid_log.error("ORCID service returned UNAUTHORIZED: "+HttpStatus.UNAUTHORIZED);
112 134
                    throw new AuthorizationServiceException("User is not registered");
113 135
                }
114 136
                return false;
......
117 139
        HttpHeaders headers = new HttpHeaders();
118 140
        headers.add("Authorization", "Bearer " + userAccessToken);
119 141
        headers.add("Content-Type", "application/orcid+json;charset=UTF-8");
120
        log.debug(headers.get("Authorization"));
121 142

  
122 143
        HttpEntity<String> request = new HttpEntity<>(gson.toJson(result.getWork()), headers);
123
        //logger.info(restTemplate.exchange(fooResourceUrl, HttpMethod.GET, request, Object.class));
124 144

  
145
        orcid_log.info("request: "+request);
146
        orcid_log.info("url: "+url);
125 147
        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, request, String.class);
148

  
126 149
        if (response.getStatusCode() != HttpStatus.CREATED) {
127
            log.debug("Saving work response code is: " + response.getStatusCode());
128
            log.debug(response.getBody());
150
            orcid_log.error("Saving work response code is: " + response.getStatusCode());
151
            orcid_log.error("Unexpected Response: "+response.getBody());
152

  
129 153
            if(response.getStatusCode() == HttpStatus.UNAUTHORIZED) {
130 154
                throw new AuthorizationServiceException("You are not allowed to save work");
131
            }
132
            if(response.getStatusCode() == HttpStatus.CONFLICT) {
155
            } else if(response.getStatusCode() == HttpStatus.CONFLICT) {
133 156
                throw new ConflictException("Work is already saved");
157
            } else {
158
                throw new Exception("Internal server error");
134 159
            }
135
            return null;
160
//            return null;
136 161
        } else {
162
            orcid_log.info("Response: "+response);
163
//            log.debug("[success] Saving work response code is: " + response.getStatusCode());
164
//            log.debug(response.toString());
137 165

  
138
            log.debug("[success] Saving work response code is: " + response.getStatusCode());
139
            log.debug(response.toString());
166
            Date date = new Date();
140 167

  
141 168
            Work workToSave = new Work();
142 169
            workToSave.setPids(result.getPids());
143 170
            workToSave.setOrcid(userOrcid);
144
            workToSave.setCreationDate(new Date());
171
            workToSave.setCreationDate(date);
172
            workToSave.setUpdateDate(date);
145 173

  
146 174
            HttpHeaders responseHeaders = response.getHeaders();
147 175
            String locationPath = responseHeaders.getLocation().toString();
148 176
            String[] locationPathArray = locationPath.split("/");
149 177
            workToSave.setPutCode(locationPathArray[locationPathArray.length - 1]);
150 178

  
151
            log.debug(gson.toJson(result.getPids()));
152
            log.debug(responseHeaders.getLocation().toString());
153
            log.debug(gson.toJson(workToSave));
179
//            log.debug(gson.toJson(result.getPids()));
180
//            log.debug(responseHeaders.getLocation().toString());
181
//            log.debug(gson.toJson(workToSave));
154 182

  
155 183
            workService.saveWork(workToSave);
156 184

  
157
            return "\""+workToSave.getPutCode()+"\"";
185
            return workToSave;
186
//            return "\""+workToSave.getPutCode()+"\"";
158 187
        }
159 188
    }
160 189

  
161
//    @RequestMapping(value = "/{orcid}/work/{putCode}", method = RequestMethod.PUT)
162
//    public String updateWork(@PathVariable String orcid,
163
//                             @PathVariable String putCode,
164
//                             @RequestBody String work) throws AccessDeniedException {
165
//        log.debug("updateWork: orcid = " + orcid + " - putCode = " + putCode);
166
//
167
//        String userAccessToken = userTokensService.getUserAccessToken(orcid);
168
//        log.debug("Access token: " + userAccessToken);
169
//
170
////        String url = "https://sandbox.orcid.org/v3.0/" + orcid.toString() + "/works";
171
//        String url = "https://api.sandbox.orcid.org/v3.0/" + orcid + "/work/" + putCode;
172
//
173
//        RestTemplate restTemplate = new RestTemplate();
174
//        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
175
//            protected boolean hasError(HttpStatus statusCode) {
176
//                return false;
177
//            }
178
//        });
179
//        HttpHeaders headers = new HttpHeaders();
180
////        headers.add("Accept", "application/json");
181
//        headers.add("Authorization", "Bearer " + userAccessToken);
182
//        headers.add("Content-Type","application/orcid+json");
183
//
184
//        HttpEntity<String> request = new HttpEntity<>(work, headers);
185
//        //logger.info(restTemplate.exchange(fooResourceUrl, HttpMethod.GET, request, Object.class));
186
//        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.PUT, request, String.class);
187
//        if (response.getStatusCode() != HttpStatus.OK) {
188
//            log.debug("Updating work response code is: " + response.getStatusCode());
189
//            return null;
190
//        } else {
191
//            log.debug(response);
192
//
193
//            return null;
194
//        }
195
//
196
//    }
190
    @RequestMapping(value = "/orcid/work/update/{putCode}", method = RequestMethod.POST)
191
    public Work updateWork(@PathVariable String putCode,
192
                             @RequestBody String resultString) throws AccessDeniedException, BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, IOException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeySpecException {
193
        log.debug("updateWork: putCode = " + putCode);
197 194

  
198
//    @RequestMapping(value = "/works/save", method = RequestMethod.POST)
199
//    public String saveWorks(@RequestBody String works) {
200
//        log.debug("saveWorks");
201
//
202
//        String userAccessToken = userTokensService.getUserAccessToken(null);
195
        Gson gson = new GsonBuilder().create();
196
        ResultIdAndWork result = gson.fromJson(resultString, ResultIdAndWork.class);
197

  
198
        UserTokens userTokens = userTokensService.getUserTokens();
199
        if(userTokens == null) {
200
            throw new AuthorizationServiceException("User is not registered");
201
        }
202
        String userOrcid = userTokens.getOrcid();
203
        String userAccessToken = userTokens.getAccessToken();
204

  
205
        if(userOrcid == null || userAccessToken == null) {
206
            throw new AuthorizationServiceException("User is not registered");
207
        }
208

  
203 209
//        log.debug("Access token: " + userAccessToken);
204
//        log.debug(works);
205
//
206
//        String url = "https://api.sandbox.orcid.org/v3.0/0000-0001-9541-4617/work";
207
//
208
//        RestTemplate restTemplate = new RestTemplate();
209
//        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
210
//            protected boolean hasError(HttpStatus statusCode) {
211
//                return false;
212
//            }
213
//        });
214
//        HttpHeaders headers = new HttpHeaders();
215
//        headers.add("Authorization", "Bearer " + userAccessToken);
216
//        headers.add("Content-Type", "application/json");
217
////        List<MediaType> list = new ArrayList();
218
////        list.add(MediaType.TEXT_HTML);
219
////        headers.setAccept(list);
220
//
221
//
222
//        HttpEntity<String> request = new HttpEntity<>(works.toString(), headers);
223
//
224
////            log.debug(restTemplate.exchange(url, HttpMethod.POST, request, Object.class));
225
//
226
//        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, request, String.class);
227
//        if (response.getStatusCode() != HttpStatus.OK) {
228
//            log.debug("Saving works response code is: " + response.getStatusCode());
229
//            log.debug(response.getBody().toString());
230
//            return null;
231
//        } else {
232
//            log.debug("[success] Saving works response code is: " + response.getStatusCode());
233
//            log.debug(response.toString());
234
//
235
//            return response.toString();
236
//        }
237
//    }
210
//        log.debug("User orcid: " + userOrcid);
238 211

  
239
//    @RequestMapping(value = "/works", method = RequestMethod.GET)
240
//    public String getAllWorks(@RequestParam String orcid) {
241
//        log.debug("getAllWorks: orcid = |" + orcid + "|");
242
//
243
//        String userAccessToken = userTokensService.getUserAccessToken(orcid);
244
//        log.debug("Access token: " + userAccessToken);
245
//
246
////        String url = "https://sandbox.orcid.org/v3.0/" + orcid.toString() + "/works";
247
//        String url = "https://api.sandbox.orcid.org/v3.0/"+orcid+"/works";
248
//
249
//        RestTemplate restTemplate = new RestTemplate();
250
//        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
251
//            protected boolean hasError(HttpStatus statusCode) {
252
//                return false;
253
//            }
254
//        });
255
//        HttpHeaders headers = new HttpHeaders();
212
//        String url = "https://sandbox.orcid.org/v3.0/" + orcid.toString() + "/works";
213
//        String url = "https://api.sandbox.orcid.org/v3.0/" + userOrcid + "/work/" + putCode;
214
        String url = orcidConfig.getApiURL() + userOrcid + "/work/" + putCode;
215

  
216
        RestTemplate restTemplate = new RestTemplate();
217
        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
218
            protected boolean hasError(HttpStatus statusCode) {
219
                return false;
220
            }
221
        });
222
        HttpHeaders headers = new HttpHeaders();
256 223
//        headers.add("Accept", "application/json");
257
//        headers.add("Authorization", "Bearer " + userAccessToken);
258
//        headers.add("Content-Type", "application/orcid+json");
259
//        log.debug(headers.get("Authorization"));
260
//        HttpEntity<String> request = new HttpEntity<>(headers);
261
//        //logger.info(restTemplate.exchange(fooResourceUrl, HttpMethod.GET, request, Object.class));
262
//        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class);
263
//        if (response.getStatusCode() != HttpStatus.OK) {
264
//            log.debug("Getting works response code is: " + response.getStatusCode());
224
        headers.add("Authorization", "Bearer " + userAccessToken);
225
        headers.add("Content-Type", "application/orcid+json;charset=UTF-8");
226

  
227
        HttpEntity<String> request = new HttpEntity<>(gson.toJson(result.getWork()), headers);
228
        orcid_log.info("request: "+request);
229
        orcid_log.info("url: "+url);
230

  
231
        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.PUT, request, String.class);
232
        if (response.getStatusCode() != HttpStatus.OK) {
233
            orcid_log.error("Updating work response code is: " + response.getStatusCode());
234
            orcid_log.error("Unexpected Response: "+response.getBody());
235
            return null;
236
        } else {
237
            orcid_log.info("Response: "+response);
238
            Date date = new Date();
239

  
240
            Work localWork = workService.getLocalWorkByPutCode(putCode);
241
            localWork.setPids(result.getPids());
242
            localWork.setUpdateDate(date);
243

  
244
            workService.saveWork(localWork);
245
            return localWork;
265 246
//            return null;
266
//        } else {
267
//            log.debug(response);
268
//            return response.getBody().toString();
269
//        }
270
//
271
////        try {
272
////            URL obj = new URL(url);
273
////
274
////            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
275
////            con.setRequestProperty("Accept", "application/json");
276
////            con.setRequestProperty("Content-Type", "application/orcid+json");
277
////            con.setRequestProperty("Authorization", "Bearer "+userAccessToken);
278
////
279
////            if (con.getResponseCode() != 200) {
280
////                log.debug("Getting works response code is: " + con.getResponseCode());
281
////                return null;
282
////            }
283
////            BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
284
////            StringBuilder response = new StringBuilder();
285
////            String inputLine;
286
////            while ((inputLine = in.readLine()) != null) {
287
////                response.append(inputLine).append("\n");
288
////            }
289
////            in.close();
290
////            log.debug(response);
291
////            return response;
292
////        } catch (Exception e) {
293
////            log.error("An error occured while trying to fetch works for orcid: "+orcid, e);
294
////            return null;
295
////        }
296
//    }
247
        }
297 248

  
249
    }
250

  
251
    @RequestMapping(value = "/orcid/works", method = RequestMethod.GET)
252
    public String getWorksByPutCodes(@RequestParam String put_codes) throws BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, IOException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeySpecException {
253
        log.debug("getWorksByPutCodes: put_codes = " + put_codes);
254

  
255
        UserTokens userTokens = userTokensService.getUserTokens();
256
        if(userTokens == null) {
257
            throw new AuthorizationServiceException("User is not registered");
258
        }
259
        String userOrcid = userTokens.getOrcid();
260
        String userAccessToken = userTokens.getAccessToken();
261

  
262
        if(userOrcid == null || userAccessToken == null) {
263
            throw new AuthorizationServiceException("User is not registered");
264
        }
265

  
266
//        log.debug("Access token: " + userAccessToken);
267
//        log.debug("User orcid: " + userOrcid);
268

  
269
//        String url = "https://sandbox.orcid.org/v3.0/" + orcid.toString() + "/works";
270
        String url = orcidConfig.getApiURL()+userOrcid+"/works/"+put_codes;
271

  
272
        RestTemplate restTemplate = new RestTemplate();
273
        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
274
            protected boolean hasError(HttpStatus statusCode) {
275
                return false;
276
            }
277
        });
278
        HttpHeaders headers = new HttpHeaders();
279
        headers.add("Accept", "application/json");
280
        headers.add("Authorization", "Bearer " + userAccessToken);
281
        headers.add("Content-Type", "application/orcid+json;charset=UTF-8");
282

  
283
        HttpEntity<String> request = new HttpEntity<>(headers);
284
        orcid_log.info("request: "+request);
285
        orcid_log.info("url: "+url);
286

  
287
        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class);
288
        if (response.getStatusCode() != HttpStatus.OK) {
289
            orcid_log.error("Getting works response code is: " + response.getStatusCode());
290
            orcid_log.error("Unexpected Response: "+response.getBody());
291
            return null;
292
        } else {
293
            orcid_log.info("Response: "+response);
294
            return response.getBody().toString();
295
        }
296
    }
297

  
298 298
    @PreAuthorize("isAuthenticated()")
299
    @RequestMapping(value = "/work/{putCode}/delete", method = RequestMethod.DELETE)
299
    @RequestMapping(value = "/orcid/work/{putCode}/delete", method = RequestMethod.DELETE)
300 300
    public String deleteWork(@PathVariable String putCode) throws IOException, BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeySpecException {
301 301
        log.debug("deleteWork: putCode = " + putCode);
302 302

  
......
311 311
            throw new AuthorizationServiceException("User is not registered");
312 312
        }
313 313

  
314
        log.debug("Access token: " + userAccessToken);
315
        log.debug("User orcid: " + userOrcid);
314
//        log.debug("Access token: " + userAccessToken);
315
//        log.debug("User orcid: " + userOrcid);
316 316

  
317
//        String url = "https://sandbox.orcid.org/v3.0/" + orcid.toString() + "/works";
318 317
        String url = "https://api.sandbox.orcid.org/v3.0/"+userOrcid+"/work/" + putCode;
319 318

  
320 319
        RestTemplate restTemplate = new RestTemplate();
......
326 325
        HttpHeaders headers = new HttpHeaders();
327 326
//        headers.add("Accept", "application/json");
328 327
        headers.add("Authorization", "Bearer " + userAccessToken);
329
        headers.add("Content-Type","application/orcid+json");
328
        headers.add("Content-Type", "application/orcid+json;charset=UTF-8");
330 329

  
331 330
        HttpEntity<String> request = new HttpEntity<>(headers);
332
        //logger.info(restTemplate.exchange(fooResourceUrl, HttpMethod.GET, request, Object.class));
331
        orcid_log.info("request: "+request);
332
        orcid_log.info("url: "+url);
333

  
333 334
        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.DELETE, request, String.class);
334 335
        if (response.getStatusCode() != HttpStatus.NO_CONTENT) {
335
            log.debug("Deleting work response code is: " + response.getStatusCode());
336
            orcid_log.error("Deleting work response code is: " + response.getStatusCode());
337
            orcid_log.error("Unexpected Response: "+response.getBody());
338

  
336 339
            if(response.getStatusCode() == HttpStatus.NOT_FOUND) {
337 340
                workService.deleteWork(putCode);
338 341
                return putCode;
......
342 345
            }
343 346
            return null;
344 347
        } else {
345
            log.debug(response);
348
            orcid_log.info("Response: "+response);
346 349

  
347 350
            workService.deleteWork(putCode);
348 351

  
......
352 355
    }
353 356

  
354 357
    @PreAuthorize("isAuthenticated()")
355
    @RequestMapping(value = "/works/delete", method = RequestMethod.POST)
358
    @RequestMapping(value = "/orcid/works/delete", method = RequestMethod.POST)
356 359
    public List<String> deleteWorks(@RequestBody List<String> putCodes) throws IOException, BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeySpecException {
357 360
        log.debug("deleteWorks: putCodes = " + putCodes);
358 361

  
......
367 370
            throw new AuthorizationServiceException("User is not registered");
368 371
        }
369 372

  
370
        log.debug("Access token: " + userAccessToken);
371
        log.debug("User orcid: " + userOrcid);
373
//        log.debug("Access token: " + userAccessToken);
374
//        log.debug("User orcid: " + userOrcid);
372 375

  
373 376
        RestTemplate restTemplate = new RestTemplate();
374 377
        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
......
379 382
        HttpHeaders headers = new HttpHeaders();
380 383
//        headers.add("Accept", "application/json");
381 384
        headers.add("Authorization", "Bearer " + userAccessToken);
382
        headers.add("Content-Type","application/orcid+json");
385
        headers.add("Content-Type", "application/orcid+json;charset=UTF-8");
383 386

  
384 387
        HttpEntity<String> request = new HttpEntity<>(headers);
385
        //logger.info(restTemplate.exchange(fooResourceUrl, HttpMethod.GET, request, Object.class));
386 388

  
387 389
        List<String> deletedPutCodes = new ArrayList<>();
388 390
        int index = 0;
......
390 392
            String url = "https://api.sandbox.orcid.org/v3.0/"+userOrcid+"/work/" + putCode;
391 393
//            UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
392 394

  
395
            orcid_log.info("request: "+request);
396
            orcid_log.info("url: "+url);
397

  
393 398
            ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.DELETE, request, String.class);
394 399
            if (response.getStatusCode() != HttpStatus.NO_CONTENT) {
395
                log.debug("Deleting work response code is: " + response.getStatusCode());
400
                orcid_log.error("Deleting work response code is: " + response.getStatusCode());
401
                orcid_log.error("Unexpected Response: "+response.getBody());
402

  
396 403
                if(index == 0 && response.getStatusCode() == HttpStatus.UNAUTHORIZED) {
397 404
                    throw new AuthorizationServiceException("You are not allowed to delete work");
398 405
                }
......
403 410
                    deletedPutCodes.add(null);
404 411
                }
405 412
            } else {
406
                log.debug(response);
413
                orcid_log.info("Response: "+response);
407 414

  
408 415
                workService.deleteWork(putCode);
409 416

  
......
415 422
    }
416 423

  
417 424
    @PreAuthorize("isAuthenticated()")
418
    @RequestMapping(value = "/work", method = RequestMethod.GET)
425
    @RequestMapping(value = "/orcid/work", method = RequestMethod.GET)
419 426
    public List<String> getWorksOfReuslt(@RequestParam String[] pids, @RequestParam String orcid) throws BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeySpecException, IOException {
420 427
        log.debug("getWorks: pids = " + pids + " - orcid = "+orcid);
421 428

  
422 429
        List<Work> works = workService.getWorks(pids, orcid);
423 430

  
424 431
        String userAccessToken = userTokensService.getUserAccessToken(orcid);
425
        log.debug("Access token: " + userAccessToken);
432
//        log.debug("Access token: " + userAccessToken);
426 433

  
427 434
        RestTemplate restTemplate = new RestTemplate();
428 435
        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
......
433 440
        HttpHeaders headers = new HttpHeaders();
434 441
        headers.add("Accept", "application/json");
435 442
        headers.add("Authorization", "Bearer " + userAccessToken);
436
        headers.add("Content-Type", "application/orcid+json");
437
        log.debug(headers.get("Authorization"));
443
        headers.add("Content-Type", "application/orcid+json;charset=UTF-8");
444

  
438 445
        HttpEntity<String> request = new HttpEntity<>(headers);
439 446

  
440 447
        List<String> responseValues = new ArrayList<>();
441 448

  
442 449
        for(Work work : works) {
443
//        String url = "https://api.sandbox.orcid.org/v3.0/0000-0001-9541-4617/work/"+work.getPutCode();
444
            String url = "https://api.sandbox.orcid.org/v3.0/" + orcid + "/work/" + work.getPutCode();
445
            log.debug(url);
450
            String url = orcidConfig.getApiURL() + orcid + "/work/" + work.getPutCode();
446 451
            UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
452
            orcid_log.info("request: "+request);
453
            orcid_log.info("url: "+url);
447 454

  
448
            //logger.info(restTemplate.exchange(fooResourceUrl, HttpMethod.GET, request, Object.class));
449 455
            ResponseEntity<String> response = restTemplate.exchange(builder.toUriString(), HttpMethod.GET, request, String.class);
450
//        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class);
451 456
            if (response.getStatusCode() != HttpStatus.OK) {
452
                log.debug("Getting work response code is: " + response.getStatusCode());
457
                orcid_log.error("Getting work response code is: " + response.getStatusCode());
458
                orcid_log.error("Unexpected Response: "+response.getBody());
453 459

  
454 460
                if (response.getStatusCode() == HttpStatus.NOT_FOUND) {
455 461
//                work.setPutCode(null);
......
459 465

  
460 466
                responseValues.add(null);
461 467
            } else {
462
                log.debug(response);
468
                orcid_log.info("Response: "+response);
463 469
                responseValues.add(response.getBody().toString());
464 470
            }
465 471
        }
466 472
        return responseValues;
467 473
    }
468 474

  
475
//    @PreAuthorize("isAuthenticated()")
476
//    @RequestMapping(value = "/local/works", method = RequestMethod.GET)
477
//    public Map<String, Object> getLocalWorks(@RequestParam(required = false) Integer page, @RequestParam(required = false) Integer size)
478
//            throws BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeySpecException, IOException {
479
//        log.debug("getWorks: page="+page+ " - size="+size);
480
//
481
//        String userOrcid = userTokensService.getCurrentUserOrcid();
482
//        if(userOrcid == null) {
483
//            throw new AuthorizationServiceException("User is not registered");
484
//        }
485
//
486
//        List<Work> works = workService.getLocalWorks(userOrcid);
487
//
488
//        Map<String, Object> response = new HashMap<>();
489
//        response.put("total", works.size());
490
//
491
//        if(page != null && page > 0 && size != null && size > 0) {
492
//            int from = (page-1)*size;
493
//            int to = page*size;
494
//
495
////            log.debug("size: "+works.size());
496
//            if(to > works.size()) {
497
//                to = works.size();
498
//            }
499
////            log.debug("from="+from+" - to="+to);
500
//
501
////            int index = 0;
502
////            Iterator<Work> iterator = works.iterator();
503
////            while(iterator.hasNext()) {
504
////                iterator.next();
505
////                if(index < from || index > to) {
506
////                    iterator.remove();
507
////                }
508
////                index++;
509
////            }
510
//            if(from < to) {
511
//                response.put("results", works.subList(from, to));
512
//                return response;
513
//            }
514
//        }
515
//        response.put("results", works);
516
//        return response;
517
//    }
518

  
469 519
    @PreAuthorize("isAuthenticated()")
470
    @RequestMapping(value = "/works/local", method = RequestMethod.GET)
471
    public List<Work> getLocalWorks() throws BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeySpecException, IOException {
472
        log.debug("getWorks");
473

  
474
        UserTokens userTokens = userTokensService.getUserTokens();
475
        if(userTokens == null) {
476
            throw new AuthorizationServiceException("User is not registered");
477
        }
478
        String userOrcid = userTokens.getOrcid();
479

  
520
    @RequestMapping(value = "/local/works", method = RequestMethod.GET)
521
    public List<Work> getMyLocalWorks() {
522
        log.debug("getMyWorks");
523
//
524
        String userOrcid = userTokensService.getCurrentUserOrcid();
480 525
        if(userOrcid == null) {
481 526
            throw new AuthorizationServiceException("User is not registered");
482 527
        }
483

  
484
        return workService.getLocalWorks(userOrcid);
528
//
529
        List<Work> works = workService.getLocalWorks(userOrcid);
530
//
531
        return works;
485 532
    }
486 533
}
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/controllers/SimpleErrorController.java
24 24
@RequestMapping("/error")
25 25
public class SimpleErrorController implements ErrorController {
26 26
    private final Logger log = Logger.getLogger(this.getClass());
27
    private final Logger orcid_log = Logger.getLogger("ORCID-"+this.getClass().getName());
27 28

  
28 29
    private final ErrorAttributes errorAttributes;
29 30

  
......
57 58
//                message=Unknown status code [525] Origin SSL Handshake Error,
58 59
//            path=/uoa-orcid-service/orcid/work/save}
59 60

  
60
        log.debug(body);
61
        log.debug(body.get("status"));
61
        String path = (String)body.get("path");
62
        if(path.contains("/uoa-orcid-service/orcid")) {
63
            orcid_log.error(body);
64
        } else {
65
            log.error(body);
66
        }
67

  
62 68
        Integer status = (Integer)body.get("status");
63
        log.debug("status: "+status);
64 69

  
65 70
        HttpStatus statusCode = HttpStatus.INTERNAL_SERVER_ERROR;
66 71
        if (status != null) {
67 72
            statusCode = HttpStatus.valueOf(status);
68
            log.debug(statusCode);
69 73
        }
70 74

  
71 75
        ExceptionResponse response = new ExceptionResponse();
......
73 77
        response.setErrorMessage((String)body.get("exception"));
74 78
        response.setErrors((String)body.get("message"));
75 79
        response.setStatus(statusCode);
76
        log.error((String)body.get("exception")+" : "+ (String)body.get("message"));
80
//        log.error((String)body.get("exception")+" : "+ (String)body.get("message"));
77 81
        return new ResponseEntity<ExceptionResponse>(response, statusCode);
78 82

  
79 83
//        return body;
modules/uoa-orcid-service/trunk/src/main/java/eu/dnetlib/uoaorcidservice/UoaOrcidServiceApplication.java
3 3
import eu.dnetlib.uoaauthorizationlibrary.configuration.AuthorizationConfiguration;
4 4
import eu.dnetlib.uoaorcidservice.configuration.properties.MongoConfig;
5 5
//import eu.dnetlib.uoaauthorizationlibrary.configuration.AuthorizationConfiguration;
6
import eu.dnetlib.uoaorcidservice.configuration.properties.OrcidConfig;
6 7
import eu.dnetlib.uoaorcidservice.handlers.utils.AESUtils;
7 8
import org.springframework.boot.SpringApplication;
8 9
import org.springframework.boot.autoconfigure.SpringBootApplication;
......
16 17
        @PropertySource("classpath:orcidservice.properties"),
17 18
        @PropertySource(value = "classpath:dnet-override.properties", ignoreResourceNotFound = true)
18 19
})
19
@EnableConfigurationProperties({MongoConfig.class, AESUtils.class})
20
@EnableConfigurationProperties({MongoConfig.class, AESUtils.class, OrcidConfig.class})
20 21
@Import(AuthorizationConfiguration.class)
21 22
public class UoaOrcidServiceApplication {
22 23

  
modules/uoa-orcid-service/trunk/src/main/resources/log4j.properties
1 1
log4j.rootLogger = DEBUG, R
2 2

  
3 3
log4j.logger.eu.dnetlib = DEBUG
4
log4j.logger.ORCID-eu.dnetlib = DEBUG, ORCID
4 5
log4j.logger.org.springframework = DEBUG, S
5 6

  
6 7
log4j.additivity.org.springframework = false
......
17 18
log4j.appender.S.MaxFileSize=10MB
18 19
log4j.appender.S.MaxBackupIndex=10
19 20
log4j.appender.S.layout=org.apache.log4j.PatternLayout
20
log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n
21
log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n
22

  
23
#log4j.ORCID.name = ORCID
24
log4j.appender.ORCID=org.apache.log4j.RollingFileAppender
25
log4j.appender.ORCID.File=/var/log/dnet/uoa-orcid-service/uoa-orcid-service-orcid.log
26
log4j.appender.ORCID.MaxFileSize=10MB
27
log4j.appender.ORCID.MaxBackupIndex=10
28
log4j.appender.ORCID.layout=org.apache.log4j.PatternLayout
29
log4j.appender.ORCID.layout.ConversionPattern= %d %p %t [%c] - %m%n
modules/uoa-orcid-service/trunk/src/main/resources/orcidservice.properties
2 2
orcidservice.mongodb.host=localhost
3 3
orcidservice.mongodb.port=27017
4 4
orcidservice.mongodb.database=openaire_orcid
5

  
6
orcidservice.orcid.apiURL=https://api.sandbox.orcid.org/v3.0/
7
orcidservice.orcid.tokenURL=https://sandbox.orcid.org/oauth/token
8
orcidservice.orcid.clientId=APP-A5M3KTX6NCN67L91
9
orcidservice.orcid.clientSecret=96b20d71-ae06-4286-bb00-9172536c1ad4
10

  
5 11
#orcidservice.encryption.password=...
6 12

  
7 13
#beta

Also available in: Unified diff