@POST
  @Path("{token}")
  @Produces(MediaType.APPLICATION_JSON)
  @Consumes(MediaType.APPLICATION_JSON)
  public String gerarToken(@PathParam("token") Long id, String json) {
    String retorno = BLANK_RETURN;
    Token token = null;
    try {
      Usuario usuario = usuarioSevice.findByCodigo(id);
      if (usuario != null) {
        token = tokenGeneratorService.findByUsuarioId(id);

        Gson gson = new GsonBuilder().setExclusionStrategies(new TokenExclusionStrategy()).create();

        if (token != null) {
          retorno = gson.toJson(token);
        } else {
          JSONObject jsonObject = new JSONObject(json);
          configurarUsuario(usuario, jsonObject);

          token = tokenGeneratorService.create(usuario);
          retorno = gson.toJson(token);
        }
      } else {
        // TODO Saber qual a mensagem enviar para o cliente
      }
    } catch (ServiceException e) {
      // TODO Saber qual mensagem passar para o usuário
    } catch (Exception e) {
      // TODO Saber qual mensagem passar para o usuário
    }
    return retorno;
  }
 private Response configurarResponse(Usuario usuario) throws ServiceException {
   Token token = tokenGeneratorService.create(usuario);
   String retorno = BLANK_RETURN;
   Response response = null;
   if (token != null) {
     Gson gson = new GsonBuilder().setExclusionStrategies(new TokenExclusionStrategy()).create();
     retorno = gson.toJson(token);
     response = CallBackUtil.setResponseOK(retorno, MediaType.APPLICATION_JSON);
   } else {
     response =
         CallBackUtil.setResponseError(
             Status.INTERNAL_SERVER_ERROR.getStatusCode(),
             MessageUtil.getMessageFromBundle("exception.token_nao_encontrado"));
   }
   return response;
 }