Revision 59495
Added by Katerina Iatropoulou over 3 years ago
Test3Service.java | ||
---|---|---|
101 | 101 |
@GET |
102 | 102 |
@Path("/getAccessToken") |
103 | 103 |
@Produces(MediaType.APPLICATION_JSON) |
104 |
public Response getAccessTokenFromRefreshToken(@Context final HttpServletRequest request){ |
|
104 |
public Response getAccessTokenFromRefreshToken(@Context final HttpServletRequest request, |
|
105 |
@QueryParam("refreshToken") String refreshToken){ |
|
105 | 106 |
|
106 |
String header = request.getHeader("Authorization"); |
|
107 |
|
|
108 |
if (header == null || !header.startsWith("Bearer ")) { |
|
107 |
if (refreshToken == null || refreshToken.isEmpty()) { |
|
109 | 108 |
return Response.status(Response.Status.BAD_REQUEST) |
110 |
.entity(String.format(errorMessage, 400, "No JWT token found in request headers", "No JWT token found in request headers")).build(); |
|
109 |
.entity(String.format(errorMessage, 400, "Bad Request", "Missing refreshToken parameter")) |
|
110 |
.type(MediaType.APPLICATION_JSON).build(); |
|
111 | 111 |
} |
112 | 112 |
|
113 |
String refreshToken = header.substring(7); |
|
114 | 113 |
CloseableHttpClient httpclient = HttpClients.createDefault(); |
115 | 114 |
HttpPost httppost = new HttpPost(issuer+"/token"); |
116 | 115 |
|
... | ... | |
127 | 126 |
try { |
128 | 127 |
httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); |
129 | 128 |
//Execute and get the response. |
130 |
|
|
131 | 129 |
response = httpclient.execute(httppost); |
132 |
|
|
133 | 130 |
org.apache.http.HttpEntity entity = response.getEntity(); |
134 |
logger.debug("entity " + response.getEntity()); |
|
135 | 131 |
|
136 |
logger.debug("I am here"); |
|
132 |
if (response.getStatusLine().getStatusCode() == 401) { |
|
133 |
return Response.status(Response.Status.UNAUTHORIZED) |
|
134 |
.entity(String.format(errorMessage, 401, "Unauthorised", "Invalid refreshToken token " + refreshToken)) |
|
135 |
.type(MediaType.APPLICATION_JSON).build(); |
|
136 |
} |
|
137 |
|
|
137 | 138 |
String serverMessage = IOUtils.toString(entity.getContent(), StandardCharsets.UTF_8.name()); |
138 |
|
|
139 | 139 |
return Response.status(response.getStatusLine().getStatusCode()) |
140 | 140 |
.entity(serverMessage).type(MediaType.APPLICATION_JSON).build(); |
141 | 141 |
|
Also available in: Unified diff
Changed getAccessTokenFromRefreshToken to expect the refresh token as parameter. Added service registration pages and methods.