Project

General

Profile

« Previous | Next » 

Revision 59495

Changed getAccessTokenFromRefreshToken to expect the refresh token as parameter. Added service registration pages and methods.

View differences:

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