I am trying to add some custom header parameters to a HTTP 303 (redirect) response. However, the new headers seem to be getting stripped from the response.
This code is meant to receive a request and returns a HTTP 303 response:
@POST
@Path("/authorize")
@Produces("application/x-www-form-urlencoded")
public Response getOAuthGrant(@HeaderParam(OAuth2.AUTHORIZATION) @DefaultValue("") String authorization,
@HeaderParam(OAuth2.CLIENT_ID) @DefaultValue("") String clientId,
@HeaderParam(OAuth2.CLIENT_SECRET) @DefaultValue("") String clientSecret,
@HeaderParam(OAuth2.GRANT_TYPE) @DefaultValue("") String grantType) throws InternalServerException, UnauthorizedException {
OAuth2.validateGrantRequest(clientId, clientSecret, authorization, grantType);
ApiTokenV2 apiTokenV2 = new ApiTokenV2();
try {
apiTokenV2 = TokenManager.getApiToken(clientId);
if (apiTokenV2 != null) {
apiTokenV2.generateAccessGrant(clientId);
} else {
logger.error("Error in TokenEndpoint. Retrieved token is null.");
throw new InternalServerException("A server error occurred while trying to authorize the requester. Could not find 'generateAccessGrant' method");
}
} catch (NamingException e) {
throw new InternalServerException("A server error occurred while trying to authorize grant request. Could not find 'generateAccessGrant' method.", e);
}
return Response.status(Response.Status.SEE_OTHER)
.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
.header("Location", "/api/token")
.header("Authorization", "OAuth")
.header("Access-Grant", apiTokenV2.getAccessGrant())
.build();
}
What am I doing wrong here? Should I be using @Context
instead?