protected Response getVipResponse(
      String version,
      String entityName,
      String acceptHeader,
      ResponseCache.Key.EntityType entityType) {
    if (!PeerAwareInstanceRegistry.getInstance().shouldAllowAccess(false)) {
      return Response.status(Response.Status.FORBIDDEN).build();
    }
    CurrentRequestVersion.set(Version.toEnum(version));
    ResponseCache.KeyType keyType = ResponseCache.KeyType.JSON;
    if (acceptHeader == null || !acceptHeader.contains("json")) {
      keyType = ResponseCache.KeyType.XML;
    }

    ResponseCache.Key cacheKey =
        new ResponseCache.Key(entityType, entityName, keyType, CurrentRequestVersion.get());

    String payLoad = ResponseCache.getInstance().get(cacheKey);

    if (payLoad != null) {
      logger.debug("Found: {}", entityName);
      return Response.ok(payLoad).build();
    } else {
      logger.debug("Not Found: {}", entityName);
      return Response.status(Response.Status.NOT_FOUND).build();
    }
  }
示例#2
0
文件: Key.java 项目: wuliugeng/eureka
 public Key(
     EntityType entityType,
     String entityName,
     KeyType type,
     Version v,
     EurekaAccept eurekaAccept,
     @Nullable String[] regions) {
   this.regions = regions;
   this.entityType = entityType;
   this.entityName = entityName;
   this.requestType = type;
   this.requestVersion = v;
   this.eurekaAccept = eurekaAccept;
   hashKey =
       this.entityType
           + this.entityName
           + (null != this.regions ? Arrays.toString(this.regions) : "")
           + requestType.name()
           + requestVersion.name()
           + this.eurekaAccept.name();
 }