nuget-feed/src/jetbrains/buildServer/serverSide/packages/Repository.java (62 lines of code) (raw):
package jetbrains.buildServer.serverSide.packages;
import org.jetbrains.annotations.NotNull;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.jetbrains.annotations.Nullable;
public abstract class Repository {
private final RepositoryType myType;
private final String myProjectId;
private final Map<String, String> myParameters;
public Repository(@NotNull final RepositoryType type,
@NotNull final String projectId,
@NotNull final Map<String, String> parameters) {
myType = type;
myProjectId = projectId;
myParameters = parameters;
}
@NotNull
public String getProjectId() {
return myProjectId;
}
@NotNull
public String getName() {
return sanitize(myParameters.get(RepositoryConstants.REPOSITORY_NAME_KEY));
}
@NotNull
public RepositoryType getType() {
return myType;
}
@NotNull
public String getDescription() {
return sanitize(myParameters.get(RepositoryConstants.REPOSITORY_DESCRIPTION_KEY));
}
@NotNull
public Map<String, String> getParameters() {
return myParameters;
}
@NotNull
public String getParametersDescription() {
return "";
}
@NotNull
public List<String> getUrlPaths() {
return Collections.emptyList();
}
@SuppressWarnings("DynamicRegexReplaceableByCompiledPattern")
@Nullable
private static String sanitize(@Nullable final String string) {
if(string == null) {
return null;
}
return string
.replaceAll("(?i)<script.*?>.*?</script.*?>", "")
.replaceAll("(?i)<.*?javascript:.*?>.*?</.*?>", "")
.replaceAll("(?i)<.*?\\s+on.*?>.*?</.*?>", "")
.replace('<', ' ')
.replace('>', ' ')
.replace('&', ' ')
.replace('\'', ' ')
.replace('"', ' ');
}
}