@Override protected boolean appliesTo(final Repository repository) { return repository.getFormat().getValue().equals(Maven2Format.NAME); }
@Override protected boolean appliesTo(final Repository repository) { return repository.getFormat().getValue().equals(Maven2Format.NAME); }
/** * Find content validator for given repository. If no format-specific validator is configured, the default is used. * * @param repository The repository for content validator is looked up. * @return the repository specific content validator to be used, or the default content validator, never {@code null}. */ @Nonnull public ContentValidator validator(final Repository repository) { checkNotNull(repository); String format = repository.getFormat().getValue(); log.trace("Looking for content validator for format: {}", format); ContentValidator contentValidator = contentValidators.get(format); if (contentValidator == null) { return defaultContentValidator; } return contentValidator; } }
/** * Find MIME rule source for given repository. If no format-specific source is configured, {@link * MimeRulesSource#NOOP} is returned. * * @param repository The repository for MIME rule source is looked up. * @return the repository specific MIME rule source, or noop rule selector. */ @Nonnull public MimeRulesSource ruleSource(final Repository repository) { checkNotNull(repository); String format = repository.getFormat().getValue(); log.trace("Looking for MIME rule source for format: {}", format); MimeRulesSource mimeRulesSource = mimeRulesSources.get(format); if (mimeRulesSource != null) { return mimeRulesSource; } return MimeRulesSource.NOOP; } }
private AutoBlockConfiguration getAutoBlockConfiguration() { AutoBlockConfiguration config = this.autoBlockConfiguration.get(getRepository().getFormat().getValue()); if (config == null) { config = autoBlockConfiguration.get(DEFAULT); } return config; }
/** * Returns the repository if it have format of {@link NpmFormat} only, {@code null} otherwise. */ @Nullable private Repository findNpmRepository(final String repositoryName) { final Repository repository = repositoryManager.get(repositoryName); if (repository != null && NpmFormat.NAME.equals(repository.getFormat().getValue())) { return repository; } return null; }
private void updateAssets(final Set<Repository> repositories, final boolean updateAssets) { for (Repository repository : repositories) { if (isCanceled()) { break; } ofNullable(restoreBlobStrategies.get(repository.getFormat().getValue())) .ifPresent(strategy -> strategy.after(updateAssets, repository)); } }
public RepositoryViewPermission(final Repository repository, final String... actions) { this(repository.getFormat().getValue(), repository.getName(), Arrays.asList(actions)); }
/** * Creates the browse nodes used to access a collection of assets and their components (if they have one). * * @param repository storing the assets * @param assets which need to be accessible from the browse nodes * @see BrowseNodeGenerator#computeAssetPath(Asset, Component) for details on the default behavior used to compute the asset path * @see BrowseNodeGenerator#computeComponentPath(Asset, Component) for details on the default behavior used to compute the component path */ public void createFromAssets(final Repository repository, final Iterable<Asset> assets) { checkNotNull(repository); checkNotNull(assets); String repositoryName = repository.getName(); BrowseNodeGenerator generator = pathGenerators.getOrDefault(repository.getFormat().getValue(), defaultGenerator); assets.forEach(asset -> createBrowseNodes(repositoryName, generator, asset)); }
private void blobStoreIntegrityCheck(final boolean integrityCheck, final String blobStoreId) { if (!integrityCheck) { log.warn("Integrity check operation not selected"); return; } BlobStore blobStore = blobStoreManager.get(blobStoreId); if (blobStore == null) { log.error("Unable to find blob store '{}' in the blob store manager", blobStoreId); return; } StreamSupport.stream(repositoryManager.browseForBlobStore(blobStoreId).spliterator(), false) .filter(r -> !(r.getType() instanceof GroupType)) .forEach(repository -> integrityCheckStrategies .getOrDefault(repository.getFormat().getValue(), defaultIntegrityCheckStrategy) .check(repository, blobStore, this::isCanceled) ); }
private Optional<Context> buildContext(final String blobStoreName, final BlobStore blobStore, final BlobId blobId) { return Optional.of(new Context(blobStoreName, blobStore, blobId)) .map(c -> c.blob(c.blobStore.get(c.blobId, true))) .map(c -> c.blobAttributes(c.blobStore.getBlobAttributes(c.blobId))) .map(c -> c.properties(c.blobAttributes.getProperties())) .map(c -> c.repositoryName(c.properties.getProperty(HEADER_PREFIX + REPO_NAME_HEADER))) .map(c -> c.repository(repositoryManager.get(c.repositoryName))) .map(c -> c.restoreBlobStrategy(restoreBlobStrategies.get(c.repository.getFormat().getValue()))); }
public RepositoryContentSelectorPermission(final SelectorConfiguration selector, final Repository repository, final List<String> actions) { this(selector.getName(), repository.getFormat().getValue(), repository.getName(), actions); }
@Override protected void doInit(final Configuration configuration) throws Exception { super.doInit(configuration); mavenPathParser = checkNotNull(mavenPathParsers.get(getRepository().getFormat().getValue())); storageFacet = getRepository().facet(StorageFacet.class); storageFacet.registerWritePolicySelector(new MavenWritePolicySelector()); }
@Override public void ensurePermitted(final Request request) { checkNotNull(request); // determine permission action from request String action = action(request); Repository repo = getRepository(); VariableSource variableSource = variableResolverAdapter.fromRequest(request, getRepository()); if (!contentPermissionChecker.isPermitted(repo.getName(), repo.getFormat().getValue(), action, variableSource)) { throw new AuthorizationException(); } }
@Subscribe @AllowConcurrentEvents public void on(final RepositoryEvent event) { if (isRecording()) { Repository repository = event.getRepository(); AuditData data = new AuditData(); data.setDomain(DOMAIN); data.setType(type(event.getClass())); data.setContext(repository.getName()); Map<String, String> attributes = data.getAttributes(); attributes.put("name", repository.getName()); attributes.put("type", repository.getType().getValue()); attributes.put("format", repository.getFormat().getValue()); record(data); } } }
@Override public VariableSource fromRequest(final Request request, final Repository repository) { VariableSourceBuilder builder = new VariableSourceBuilder(); builder.addResolver(new ConstantVariableResolver(request.getPath(), PATH)); builder.addResolver(new ConstantVariableResolver(repository.getFormat().getValue(), FORMAT)); addFromRequest(builder, request); return builder.build(); }
/** * Add security configuration for given repository. */ public void add(final Repository repository) { checkNotNull(repository); final String format = repository.getFormat().getValue(); final String name = repository.getName(); apply((model, configurationManager) -> { // no per-repo repository-admin ADD action model.addPrivilege(privilege(format, name, ALL)); model.addPrivilege(privilege(format, name, BROWSE)); model.addPrivilege(privilege(format, name, READ)); model.addPrivilege(privilege(format, name, EDIT)); model.addPrivilege(privilege(format, name, DELETE)); }); }
/** * Add security configuration for given repository. */ public void add(final Repository repository) { checkNotNull(repository); final String format = repository.getFormat().getValue(); final String name = repository.getName(); apply((model, configurationManager) -> { // add repository-view <format> <name> privileges model.addPrivilege(privilege(format, name, ALL)); model.addPrivilege(privilege(format, name, BROWSE)); model.addPrivilege(privilege(format, name, READ)); model.addPrivilege(privilege(format, name, EDIT)); model.addPrivilege(privilege(format, name, ADD)); model.addPrivilege(privilege(format, name, DELETE)); }); }
/** * Initial (static) security configuration. */ @Override protected void initial(final SecurityConfiguration model) { String format = this.format.getValue(); // add repository-view <format> ALL privileges model.addPrivilege(privilege(format, ALL, ALL)); model.addPrivilege(privilege(format, ALL, BROWSE)); model.addPrivilege(privilege(format, ALL, READ)); model.addPrivilege(privilege(format, ALL, EDIT)); model.addPrivilege(privilege(format, ALL, ADD)); model.addPrivilege(privilege(format, ALL, DELETE)); }