Skip to content

Commit

Permalink
[#60feature/#60-restlib] hostname expression fixed
Browse files Browse the repository at this point in the history
Signed-off-by: huluvu424242 <huluvu424242@gmail.com>
  • Loading branch information
Huluvu424242 committed Jan 29, 2023
1 parent a961f3a commit df6a841
Showing 1 changed file with 18 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,26 @@ protected JobStatusBeschreibung getJobStatus() {
protected BuildInfo sendGetRequest()
{
final URL statusAbfrageUrl = jobAbfragedaten.getStatusAbfrageUrl();
final String abfrageURL = statusAbfrageUrl.getPath();

final Pattern pattern = Pattern.compile("^(.+)://([^/]+)/job/(.+)/job/(.+)$");
final Matcher matcher = pattern.matcher(statusAbfrageUrl.toExternalForm());
final String hostName;
final String folderName;
final String jobName;
final boolean matched = matcher.matches();
if (matched) {
hostName = matcher.group(1)+"://"+matcher.group(2);
folderName = matcher.group(3);
jobName = matcher.group(4);
} else {
hostName = null;
folderName = null;
jobName = null;
}

final JenkinsClient.Builder clientBuilder = JenkinsClient.builder()
.endPoint(String.format("%s://%s:%d/", statusAbfrageUrl.getProtocol(), statusAbfrageUrl.getHost(), statusAbfrageUrl.getPort()));
.endPoint(hostName);
// Basic Auth
final String basicAuthToken = jobAbfragedaten.getBasicAuthToken();
if (basicAuthToken != null && basicAuthToken.length() > 1) {
Expand All @@ -93,22 +110,6 @@ protected BuildInfo sendGetRequest()
try (JenkinsClient client = clientBuilder.build()) {
//TODO erzeuge JobNotFoundException

final String abfrageURL = statusAbfrageUrl.getPath();
// TODO fix regex because DoS attack -> refactoring move to invariante
Pattern pattern = Pattern.compile(".*/job/(.*)/job/(.*)");
Matcher matcher = pattern.matcher(abfrageURL);
final String folderName;
final String jobName;
final boolean matched = matcher.matches();
if (matched) {
folderName = matcher.group(1);
jobName = matcher.group(2);
} else {
folderName = null;
jobName = null;
}


final JobsApi api = client.api().jobsApi();

final int lastBuildNumber = api.lastBuildNumber(folderName, jobName);
Expand Down

0 comments on commit df6a841

Please sign in to comment.