Skip to content

Commit d844637

Browse files
author
rmmayo
committed
cleaned up code
1 parent bfb3b82 commit d844637

File tree

1 file changed

+13
-28
lines changed

1 file changed

+13
-28
lines changed

java-backend-example/src/main/java/skills/examples/utils/StatefulRestTemplateInterceptor.java

Lines changed: 13 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -30,65 +30,50 @@
3030
public class StatefulRestTemplateInterceptor implements ClientHttpRequestInterceptor {
3131

3232
private static final Logger log = LoggerFactory.getLogger(StatefulRestTemplateInterceptor.class);
33-
private List<String> cookies;
33+
private final List<String> cookies = new ArrayList<>();
3434
private String xsrfToken;
3535
private String xsrfCookie;
3636

3737
@Override
3838
public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
3939

40-
HttpHeaders requstHeaders = request.getHeaders();
41-
if (cookies != null) {
42-
requstHeaders.addAll(HttpHeaders.COOKIE, cookies);
40+
// add cookies and XSRF token headers if present
41+
HttpHeaders requestHeaders = request.getHeaders();
42+
if (!cookies.isEmpty()) {
43+
requestHeaders.addAll(HttpHeaders.COOKIE, cookies);
4344
}
4445
if (xsrfToken != null) {
45-
requstHeaders.add("X-XSRF-TOKEN" , xsrfToken);
46+
requestHeaders.add("X-XSRF-TOKEN" , xsrfToken);
4647
}
4748
log.debug("REQUEST: [{}], headers [{}]", request.getURI(), request.getHeaders());
4849
ClientHttpResponse response = execution.execute(request, body);
4950

51+
// update cookies and XSRF token for future requests
5052
HttpHeaders headers = response.getHeaders();
51-
5253
List<String> returnedCookies = headers.getOrEmpty(HttpHeaders.SET_COOKIE);
5354
if (!returnedCookies.isEmpty()) {
54-
if (cookies == null) {
55-
cookies = new ArrayList<>();
56-
} else {
57-
for(String cookie : returnedCookies) {
58-
String cookieName = getPrefixBeforeEquals(cookie);
59-
cookies.removeIf(str -> str.startsWith(cookieName));
60-
}
55+
for (String cookie : returnedCookies) {
56+
String cookieName = getCookieName(cookie);
57+
cookies.removeIf(str -> str.startsWith(cookieName));
6158
}
6259
cookies.addAll(returnedCookies);
63-
log.debug("Adding new cookies {}, to existing cookies {}", returnedCookies, cookies);
60+
log.debug("Received new cookies {}, updated/merged cookies {}", returnedCookies, cookies);
6461

6562
response.getHeaders().get(HttpHeaders.SET_COOKIE).stream().filter(cookie -> cookie.startsWith("XSRF-TOKEN")).findAny().ifPresent(cookie -> xsrfCookie = cookie);
6663
if (xsrfCookie != null) {
6764
xsrfToken = xsrfCookie.substring(xsrfCookie.indexOf('=') + 1, xsrfCookie.indexOf(';'));
6865
log.debug("Response: [{}], set xsrfToken to [{}]", request.getURI(), xsrfToken);
69-
} else {
70-
xsrfToken = null;
7166
}
72-
} else {
73-
xsrfToken = null;
7467
}
7568
return response;
7669
}
77-
public static boolean containsJSessionId(List<String> list) {
78-
for (String str : list) {
79-
if (str.startsWith("JSESSIONID=")) {
80-
return true;
81-
}
82-
}
83-
return false;
84-
}
85-
public static String getPrefixBeforeEquals(String str) {
70+
71+
public static String getCookieName(String str) {
8672
int equalsIndex = str.indexOf('=');
8773
if (equalsIndex != -1) {
8874
return str.substring(0, equalsIndex);
8975
} else {
9076
return str;
9177
}
9278
}
93-
9479
}

0 commit comments

Comments
 (0)