14
14
package com .ericsson .ei .frontend ;
15
15
16
16
import com .ericsson .ei .frontend .model .BackEndInformation ;
17
+ import org .apache .commons .lang3 .StringUtils ;
17
18
import org .apache .http .HttpEntity ;
18
19
import org .apache .http .client .methods .*;
19
20
import org .apache .http .entity .ByteArrayEntity ;
20
21
import org .apache .http .impl .client .CloseableHttpClient ;
21
22
import org .apache .http .impl .client .HttpClientBuilder ;
23
+ import org .apache .http .util .EntityUtils ;
22
24
import org .slf4j .Logger ;
23
25
import org .slf4j .LoggerFactory ;
24
26
import org .springframework .beans .factory .annotation .Autowired ;
33
35
import org .springframework .web .bind .annotation .RestController ;
34
36
35
37
import javax .servlet .http .HttpServletRequest ;
36
- import java .io .BufferedReader ;
37
38
import java .io .IOException ;
38
- import java .io .InputStream ;
39
- import java .io .InputStreamReader ;
40
39
import java .util .ArrayList ;
41
40
import java .util .Arrays ;
42
41
import java .util .List ;
42
+ import java .util .stream .Collectors ;
43
43
44
44
@ RestController
45
45
public class EIRequestsController {
46
46
47
47
private static final Logger LOG = LoggerFactory .getLogger (EIRequestsController .class );
48
48
49
- private static final List <String > REQUSETS_WITH_QUERY_PARAM = new ArrayList <>(Arrays .asList ("/queryAggregatedObject" , "/queryMissedNotifications" , "/query" ));
49
+ private static final List <String > REQUESTS_WITH_QUERY_PARAM = new ArrayList <>(Arrays .asList ("/queryAggregatedObject" , "/queryMissedNotifications" , "/query" ));
50
50
51
51
private CloseableHttpClient client = HttpClientBuilder .create ().build ();
52
52
@@ -101,19 +101,16 @@ public ResponseEntity<String> getRequests(Model model, HttpServletRequest reques
101
101
public ResponseEntity <String > postRequests (Model model , HttpServletRequest request ) {
102
102
String eiRequestUrl = getEIRequestURL (request );
103
103
104
- String inputReqJsonContent = "" ;
104
+ String requestBody = "" ;
105
105
try {
106
- BufferedReader inputBufReader = new BufferedReader (request .getReader ());
107
- for (String line = inputBufReader .readLine (); line != null ; line = inputBufReader .readLine ()) {
108
- inputReqJsonContent += line ;
109
- }
110
- inputBufReader .close ();
106
+ requestBody = request .getReader ().lines ().collect (Collectors .joining (System .lineSeparator ()));
111
107
} catch (IOException e ) {
112
108
LOG .error ("Forward Request Errors: " + e );
113
109
}
114
110
115
- LOG .debug ("Input Request JSON Content to be forwarded:\n " + inputReqJsonContent );
116
- HttpEntity inputReqJsonEntity = new ByteArrayEntity (inputReqJsonContent .getBytes ());
111
+ LOG .debug ("Input Request JSON Content to be forwarded:\n " + requestBody );
112
+
113
+ HttpEntity inputReqJsonEntity = new ByteArrayEntity (requestBody .getBytes ());
117
114
118
115
HttpPost eiRequest = new HttpPost (eiRequestUrl );
119
116
eiRequest .setEntity (inputReqJsonEntity );
@@ -131,19 +128,16 @@ public ResponseEntity<String> postRequests(Model model, HttpServletRequest reque
131
128
public ResponseEntity <String > putRequests (Model model , HttpServletRequest request ) {
132
129
String eiRequestUrl = getEIRequestURL (request );
133
130
134
- String inputReqJsonContent = "" ;
131
+ String requestBody = "" ;
135
132
try {
136
- BufferedReader inputBufReader = new BufferedReader (request .getReader ());
137
- for (String line = inputBufReader .readLine (); line != null ; line = inputBufReader .readLine ()) {
138
- inputReqJsonContent += line ;
139
- }
140
- inputBufReader .close ();
133
+ requestBody = request .getReader ().lines ().collect (Collectors .joining (System .lineSeparator ()));
141
134
} catch (IOException e ) {
142
135
LOG .error ("Forward Request Errors: " + e );
143
136
}
144
137
145
- LOG .debug ("Input Request JSON Content to be forwarded:\n " + inputReqJsonContent );
146
- HttpEntity inputReqJsonEntity = new ByteArrayEntity (inputReqJsonContent .getBytes ());
138
+ LOG .debug ("Input Request JSON Content to be forwarded:\n " + requestBody );
139
+
140
+ HttpEntity inputReqJsonEntity = new ByteArrayEntity (requestBody .getBytes ());
147
141
148
142
HttpPut eiRequest = new HttpPut (eiRequestUrl );
149
143
eiRequest .setEntity (inputReqJsonEntity );
@@ -182,7 +176,7 @@ private String getEIBackendSubscriptionAddress() {
182
176
private String getEIRequestURL (HttpServletRequest request ) {
183
177
String eiBackendAddressSuffix = request .getServletPath ();
184
178
String requestUrl ;
185
- if (REQUSETS_WITH_QUERY_PARAM .contains (eiBackendAddressSuffix )) {
179
+ if (REQUESTS_WITH_QUERY_PARAM .contains (eiBackendAddressSuffix )) {
186
180
String requestQuery = request .getQueryString ();
187
181
String query = (requestQuery != null && !requestQuery .isEmpty ()) ? "?" + requestQuery : "" ;
188
182
requestUrl = getEIBackendSubscriptionAddress () + eiBackendAddressSuffix + query ;
@@ -196,23 +190,14 @@ private String getEIRequestURL(HttpServletRequest request) {
196
190
}
197
191
198
192
private ResponseEntity <String > getResponse (HttpRequestBase request ) {
199
- String jsonContent = "" ;
193
+ String responseBody = "" ;
200
194
int statusCode = HttpStatus .PROCESSING .value ();
201
195
try (CloseableHttpResponse eiResponse = client .execute (request )) {
202
- InputStream inStream = eiResponse .getEntity ().getContent ();
203
- BufferedReader bufReader = new BufferedReader (new InputStreamReader (inStream , "UTF-8" ));
204
- for (String line = bufReader .readLine (); line != null ; line = bufReader .readLine ()) {
205
- jsonContent += line ;
206
- }
207
- if (jsonContent .isEmpty ()) {
208
- jsonContent = "[]" ;
209
- }
196
+ responseBody = StringUtils .defaultIfBlank (EntityUtils .toString (eiResponse .getEntity (), "utf-8" ), "[]" );
210
197
statusCode = eiResponse .getStatusLine ().getStatusCode ();
211
- LOG .info ("EI Http Reponse Status Code : " + eiResponse .getStatusLine ().getStatusCode ()
212
- + "\n EI Recevied jsonContent :\n " + jsonContent
198
+ LOG .info ("EI Http response status code : " + eiResponse .getStatusLine ().getStatusCode ()
199
+ + "\n EI Received response body :\n " + responseBody
213
200
+ "\n Forwarding response back to EI Frontend WebUI." );
214
- bufReader .close ();
215
- inStream .close ();
216
201
} catch (IOException e ) {
217
202
statusCode = HttpStatus .INTERNAL_SERVER_ERROR .value ();
218
203
LOG .error ("Forward Request Errors: " + e );
@@ -221,7 +206,7 @@ private ResponseEntity<String> getResponse(HttpRequestBase request) {
221
206
HttpHeaders headers = new HttpHeaders ();
222
207
headers .setContentType (MediaType .APPLICATION_JSON );
223
208
224
- return new ResponseEntity <>(jsonContent , headers , HttpStatus .valueOf (statusCode ));
209
+ return new ResponseEntity <>(responseBody , headers , HttpStatus .valueOf (statusCode ));
225
210
}
226
211
227
212
}
0 commit comments