Sonar +
[platform/core/security/suspicious-activity-monitor.git] / servers / alive / src / main / java / com / samsung / alive / utils / rest / ServerSenderImpl.java
1 package com.samsung.alive.utils.rest;
2
3 import org.apache.log4j.Logger;
4 import org.springframework.http.ResponseEntity;
5 import org.springframework.web.client.HttpClientErrorException;
6 import org.springframework.web.client.ResourceAccessException;
7 import org.springframework.web.client.RestTemplate;
8
9 import java.net.URI;
10 import java.net.URISyntaxException;
11
12 import static java.lang.String.format;
13
14 public class ServerSenderImpl implements ServerSender {
15
16     private static final Logger LOG = Logger.getLogger(ServerSenderImpl.class);
17
18     private RestTemplate restTemplate;
19
20     private static final String API_URL_TEMPLATE = "%s/restapi/login?login=%s&password=%s";
21
22     /**
23      * Server host
24      */
25     private String host;
26
27     /**
28      * Instantiates a new Server sender.
29      *
30      * @param host server host
31      */
32     public ServerSenderImpl(String host) {
33         this.host = host;
34         this.restTemplate = new RestTemplate();
35
36         LOG.debug("Server host: " + host);
37     }
38
39     @Override
40     public String authCode(String login, String password) throws ServerSenderError {
41         try {
42             String stringURI = format(API_URL_TEMPLATE, host, login, password);
43             LOG.debug("Server Sender: " + format(API_URL_TEMPLATE, host, login, "<hidden>"));
44
45             ResponseEntity<String> result = restTemplate.getForEntity(new URI(stringURI), String.class);
46
47             return result.getBody();
48
49         } catch (URISyntaxException | HttpClientErrorException | ResourceAccessException e) {
50             LOG.error(e.getMessage(), e);
51
52             throw new ServerSenderError("Error occurred on server sender", e);
53         }
54     }
55
56 }