@POST
    @Timed
    @Path("getServiceDetails")
    @Consumes("application/x-www-form-urlencoded")
    @Produces({"application/json"})
    public Response verifyServiceToken(@HeaderParam("serviceId") @NotNull String serviceToken, @HeaderParam("callingServiceId") @NotNull String serviceTokenToVerify) {
        String errorMessage = null;

        try {

            //Make sure our direct caller has authservice to call us
            ServiceAccount verifiedService = doVerifyServiceToken(serviceToken);
            if (verifiedService == null) {
                return Response.status(401).cacheControl(NO_CACHE_CONTROL).entity("Calling service is not authorized").build();
            }
            if (!verifiedService.hasRole("VerifyToken")) {
                return Response.status(401).cacheControl(NO_CACHE_CONTROL).entity("Calling service is not authorized").build();
            }


            //Check the service token they are calling about
            ServiceAccount verifiedServiceTokenToVerify = doVerifyServiceToken(serviceTokenToVerify);
            if (verifiedServiceTokenToVerify != null) {
                ServiceDetails details = new ServiceDetails();
                details.setName(verifiedServiceTokenToVerify.name);
                details.setRoles(new ArrayList<String>());
                for (Role role : verifiedServiceTokenToVerify.roles) {
                    details.getRoles().add(role.name);
                }

                return Response.ok().cacheControl(NO_CACHE_CONTROL).entity(details).build();
            }
        } catch (Exception e) {
            L.error("Error verifying callingServiceId: " + serviceTokenToVerify, e);
            e.printStackTrace();
            errorMessage = "An unexpected error occurred";
        }
        throw new WebApplicationException(Response.status(401).cacheControl(NO_CACHE_CONTROL).entity(errorMessage).build());
    }