Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert 'KnownUsers' to Java #3799

Merged
merged 1 commit into from Mar 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 5 additions & 0 deletions pom.xml
Expand Up @@ -224,6 +224,11 @@
<artifactId>slf4j-simple</artifactId>
<version>2.0.12</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>

</dependencies>

Expand Down

This file was deleted.

@@ -0,0 +1,43 @@
package io.jenkins.infra.repository_permissions_updater;

import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Set;
import java.util.TreeSet;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

public class KnownUsers {
private static final String ARTIFACTORY_USER_NAMES_URL = System.getProperty("artifactoryUserNamesJsonListUrl", "https://reports.jenkins.io/artifactory-ldap-users-report.json");
private static final String JIRA_USER_NAMES_URL = System.getProperty("jiraUserNamesJsonListUrl", "https://reports.jenkins.io/jira-users-report.json");

private static Set<String> knownArtifactoryUsers = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
private static Set<String> knownJiraUsers = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);

static {
try {
knownArtifactoryUsers.addAll(parseJson(new URL(ARTIFACTORY_USER_NAMES_URL)));
knownJiraUsers.addAll(parseJson(new URL(JIRA_USER_NAMES_URL)));
} catch (IOException e) {
e.printStackTrace();
}
}

@SuppressFBWarnings(value = "URLCONNECTION_SSRF_FD", justification = "Not relevant in this situation.")
private static Set<String> parseJson(URL url) throws IOException {
try (InputStreamReader reader = new InputStreamReader(url.openStream(), StandardCharsets.UTF_8)) {
return new Gson().fromJson(reader, new TypeToken<Set<String>>(){}.getType());
}
}

public static boolean existsInArtifactory(String username) {
return knownArtifactoryUsers.contains(username);
}

public static boolean existsInJira(String username) {
return knownJiraUsers.contains(username);
}
}