private ProxyFacet proxyFacet(final Context context) { return context.getRepository().facet(ProxyFacet.class); } }
/** * Method that actually performs group GET. Override if needed. */ protected Response doGet(@Nonnull final Context context, @Nonnull final DispatchedRepositories dispatched) throws Exception { final GroupFacet groupFacet = context.getRepository().facet(GroupFacet.class); return getFirst(context, groupFacet.members(), dispatched); }
@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { State state = context.getAttributes().require(TokenMatcher.State.class); Repository repository = context.getRepository(); log.debug("[deleteToken] repository: {} tokens: {}", repository.getName(), state.getTokens()); return repository.facet(NpmTokenFacet.class).logout(context); } };
@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { Repository repository = context.getRepository(); Parameters parameters = context.getRequest().getParameters(); log.debug("[searchV1] repository: {} parameters: {}", repository.getName(), parameters); return NpmResponses.ok(repository.facet(NpmSearchFacet.class).searchV1(parameters)); } };
@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { State state = context.getAttributes().require(TokenMatcher.State.class); Repository repository = context.getRepository(); log.debug("[createToken] repository: {} tokens: {}", repository.getName(), state.getTokens()); return repository.facet(NpmTokenFacet.class).login(context); } };
@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { TemplateParameters params = templateHelper.parameters(); params.set("repository", context.getRepository()); String html = templateHelper.render(template, params); return HttpResponses.ok(new StringPayload(html, "text/html")); }
@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { Repository repository = context.getRepository(); Parameters parameters = context.getRequest().getParameters(); log.debug("[searchIndex] repository: {} parameters: {}", repository.getName(), parameters); return NpmResponses.ok(repository.facet(NpmSearchIndexFacet.class).searchIndex(indexSince(parameters))); } };
@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { String vendor = getVendorToken(context); String project = getProjectToken(context); String version = getVersionToken(context); Request request = checkNotNull(context.getRequest()); Payload payload = checkNotNull(request.getPayload()); Repository repository = context.getRepository(); ComposerHostedFacet hostedFacet = repository.facet(ComposerHostedFacet.class); hostedFacet.upload(vendor, project, version, payload); return HttpResponses.ok(); } }
@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { MavenPath mavenPath = context.getAttributes().require(MavenPath.class); MavenFacet mavenFacet = context.getRepository().facet(MavenFacet.class); Content content = mavenFacet.get(mavenPath); if (content == null) { return HttpResponses.notFound(mavenPath.getPath()); } return HttpResponses.ok(content); } }
@Override public Response handle(Context context) throws Exception { String path = assetPath(context); String method = context.getRequest().getAction(); AptSigningFacet facet = context.getRepository().facet(AptSigningFacet.class); if ("repository-key.gpg".equals(path) && GET.equals(method)) { return HttpResponses.ok(facet.getPublicKey()); } return context.proceed(); }
@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { State state = context.getAttributes().require(TokenMatcher.State.class); Repository repository = context.getRepository(); log.debug("[deletePackage] repository: {} tokens: {}", repository.getName(), state.getTokens()); NpmPackageId packageId = packageId(state); Set<String> deleted = repository.facet(NpmHostedFacet.class).deletePackage(packageId, revision(state)); if (!deleted.isEmpty()) { return NpmResponses.ok(); } else { return NpmResponses.packageNotFound(packageId); } } };
@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { State state = context.getAttributes().require(TokenMatcher.State.class); Repository repository = context.getRepository(); log.debug("[putPackage] repository: {} tokens: {}", repository.getName(), state.getTokens()); repository.facet(NpmHostedFacet.class) .putPackage(packageId(state), revision(state), context.getRequest().getPayload()); return NpmResponses.ok(); } };
@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { SecurityFacet securityFacet = context.getRepository().facet(SecurityFacet.class); //we employ the model that one security check per request is all that is necessary, if this handler is in a nested //repository (because this is a group repository), there is no need to check authz again if (context.getAttributes().get(AUTHORIZED_KEY) == null) { securityFacet.ensurePermitted(context.getRequest()); context.getAttributes().set(AUTHORIZED_KEY, true); } return context.proceed(); } }
private Response forward(final Context context, final String path) throws Exception { log.trace("Forwarding request to path: {}", path); Request request = new Request.Builder() .copy(context.getRequest()) .path(path) .build(); return context.getRepository() .facet(ViewFacet.class) .dispatch(request); } }
@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { Response response = context.proceed(); if (!Boolean.parseBoolean(context.getRequest().getAttributes().get(DO_NOT_REWRITE, String.class))) { if (response.getStatus().getCode() == HttpStatus.OK && response.getPayload() != null) { response = HttpResponses .ok(composerJsonProcessor.rewriteProviderJson(context.getRepository(), response.getPayload())); } } return response; } }
@Nonnull @Override public Response handle(@Nonnull final Context context) throws Exception { MavenPath path = context.getAttributes().require(MavenPath.class); Repository repository = context.getRepository(); String action = context.getRequest().getAction(); switch (action) { case GET: case HEAD: return doGet(path, repository); default: return HttpResponses.methodNotAllowed(context.getRequest().getAction(), GET, HEAD); } }
@Override public Response handle(Context context) throws Exception { UnitOfWork.begin(context.getRepository().facet(StorageFacet.class).txSupplier()); try { return context.proceed(); } finally { UnitOfWork.end(); } } }
@Override public Response handle(final Context context) throws Exception { Response response = context.proceed(); try { if (isSuccessfulRequestWithContent(context, response)) { Repository repository = context.getRepository(); StorageFacet storageFacet = repository.facet(StorageFacet.class); Content content = (Content) response.getPayload(); AttributesMap attributes = content.getAttributes(); maybeUpdateLastDownloaded(storageFacet, attributes); } } catch (Exception e) { log.error("Failed to update last downloaded time for request {}", context.getRequest().getPath(), e); } return response; }
private Response handleSnapshotFetchRequest(Context context, String id, String path) throws Exception { Repository repository = context.getRepository(); AptSnapshotFacet snapshotFacet = repository.facet(AptSnapshotFacet.class); if (snapshotFacet.isSnapshotableFile(path)) { Content content = snapshotFacet.getSnapshotFile(id, path); return content == null ? HttpResponses.notFound() : HttpResponses.ok(content); } context.getAttributes().set(AptSnapshotHandler.State.class, new AptSnapshotHandler.State(path)); return context.proceed(); } }
@Override public Response handle(final Context context) throws Exception { Response response = context.proceed(); if (assetDownloadCountStore.isEnabled() && response != null && response.getStatus().isSuccessful() && isGetRequest(context.getRequest())) { Asset asset = getAssetFromPayload(response.getPayload()); if (asset != null) { assetDownloadCountStore.incrementCount(context.getRepository().getName(), asset.name()); } } return response; }