/** * Based on <a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh465407.aspx">http://msdn.microsoft.com/en-us/library/windows/apps/hh465407.aspx</a> * * @throws WnsException when authentication fails */ public void refreshAccessToken() throws WnsException { WebTarget target = client.target(getAuthenticationUri()); MultivaluedStringMap formData = new MultivaluedStringMap(); formData.add("grant_type", GRANT_TYPE_CLIENT_CREDENTIALS); formData.add("client_id", this.sid); formData.add("client_secret", this.clientSecret); formData.add("scope", SCOPE); Response response = target.request(MediaType.APPLICATION_FORM_URLENCODED_TYPE).accept(MediaType.APPLICATION_JSON_TYPE).post(Entity.form(formData)); if (response.getStatus() != 200) { throw new WnsException("Authentication failed. HTTP error code: " + response.getStatus()); } this.token = response.readEntity(WnsOAuthToken.class); }
@POST @Produces(MediaType.APPLICATION_JSON) public Response exchangeAuthorizationCode( @PathParam(value = "identity") String identity, @Valid @NotNull final Payload payload, @Context final HttpServletResponse servletResponse) throws IOException { SocialIdentityProviderEntity identityProvider = socialIdentityProviderService.findById(identity); if (identityProvider != null) { // Step 1. Exchange authorization code for access token. final MultivaluedStringMap accessData = new MultivaluedStringMap(); accessData.add(CLIENT_ID_KEY, payload.getClientId()); accessData.add(REDIRECT_URI_KEY, payload.getRedirectUri()); accessData.add(CLIENT_SECRET, identityProvider.getClientSecret()); accessData.add(CODE_KEY, payload.getCode()); accessData.add(GRANT_TYPE_KEY, AUTH_CODE); Response response = client.target(identityProvider.getTokenEndpoint()) .request(javax.ws.rs.core.MediaType.APPLICATION_JSON_TYPE) .post(Entity.form(accessData)); accessData.clear(); if (response.getStatus() == Response.Status.OK.getStatusCode()) { final String accessToken = (String) getResponseEntity(response).get(ACCESS_TOKEN_PROPERTY); return authenticateUser(identityProvider, servletResponse, accessToken); } return Response .status(Response.Status.UNAUTHORIZED) .build(); } return Response.status(Response.Status.NOT_FOUND).build(); }
@POST @Produces(MediaType.APPLICATION_JSON) public Response exchangeAuthorizationCode( @PathParam(value = "identity") String identity, @Valid @NotNull final Payload payload, @Context final HttpServletResponse servletResponse) throws IOException { SocialIdentityProviderEntity identityProvider = socialIdentityProviderService.findById(identity); if (identityProvider != null) { // Step 1. Exchange authorization code for access token. final MultivaluedStringMap accessData = new MultivaluedStringMap(); accessData.add(CLIENT_ID_KEY, payload.getClientId()); accessData.add(REDIRECT_URI_KEY, payload.getRedirectUri()); accessData.add(CLIENT_SECRET, identityProvider.getClientSecret()); accessData.add(CODE_KEY, payload.getCode()); accessData.add(GRANT_TYPE_KEY, AUTH_CODE); Response response = client.target(identityProvider.getTokenEndpoint()) .request(javax.ws.rs.core.MediaType.APPLICATION_JSON_TYPE) .post(Entity.form(accessData)); accessData.clear(); if (response.getStatus() == Response.Status.OK.getStatusCode()) { final String accessToken = (String) getResponseEntity(response).get(ACCESS_TOKEN_PROPERTY); return authenticateUser(identityProvider, servletResponse, accessToken); } return Response .status(Response.Status.UNAUTHORIZED) .build(); } return Response.status(Response.Status.NOT_FOUND).build(); }
introspectData.add(TOKEN, token); Response response = client
introspectData.add(TOKEN, token); Response response = client