Skip to content

Commit 3b92f97

Browse files
committed
Refactor DeclaredRepository to library
1 parent 21b6f35 commit 3b92f97

File tree

3 files changed

+18
-28
lines changed

3 files changed

+18
-28
lines changed

java/ql/src/Security/CWE/CWE-1104/MavenPomDependsOnBintray.ql

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,11 @@
1212
import java
1313
import semmle.code.xml.MavenPom
1414

15-
private class DeclaredRepository extends PomElement {
16-
DeclaredRepository() {
17-
this.getName() = "repository" or
18-
this.getName() = "snapshotRepository" or
19-
this.getName() = "pluginRepository"
20-
}
21-
22-
string getUrl() { result = getAChild("url").(PomElement).getValue() }
23-
24-
predicate isBintrayRepositoryUsage() {
25-
getUrl().matches("%.bintray.com%")
26-
}
15+
predicate isBintrayRepositoryUsage(DeclaredRepository repository) {
16+
repository.getUrl().matches("%.bintray.com%")
2717
}
2818

2919
from DeclaredRepository repository
30-
where repository.isBintrayRepositoryUsage()
20+
where isBintrayRepositoryUsage(repository)
3121
select repository,
32-
"Downloading or uploading artifacts to deprecated repository " +
33-
repository.getUrl()
22+
"Downloading or uploading artifacts to deprecated repository " + repository.getUrl()

java/ql/src/Security/CWE/CWE-829/InsecureDependencyResolution.ql

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,12 @@
1515
import java
1616
import semmle.code.xml.MavenPom
1717

18-
private class DeclaredRepository extends PomElement {
19-
DeclaredRepository() {
20-
this.getName() = "repository" or
21-
this.getName() = "snapshotRepository" or
22-
this.getName() = "pluginRepository"
23-
}
24-
25-
string getUrl() { result = getAChild("url").(PomElement).getValue() }
26-
27-
predicate isInsecureRepositoryUsage() {
28-
getUrl().regexpMatch("(?i)^(http|ftp)://(?!localhost[:/]).*")
29-
}
18+
predicate isInsecureRepositoryUsage(DeclaredRepository repository) {
19+
repository.getUrl().regexpMatch("(?i)^(http|ftp)://(?!localhost[:/]).*")
3020
}
3121

3222
from DeclaredRepository repository
33-
where repository.isInsecureRepositoryUsage()
23+
where isInsecureRepositoryUsage(repository)
3424
select repository,
3525
"Downloading or uploading artifacts over insecure protocol (eg. http or ftp) to/from repository " +
3626
repository.getUrl()

java/ql/src/semmle/code/xml/MavenPom.qll

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,17 @@ class PomProperty extends PomElement {
365365
PomProperty() { getParent() instanceof PomProperties }
366366
}
367367

368+
/**
369+
* A repository block inside of a maven pom.
370+
*/
371+
class DeclaredRepository extends PomElement {
372+
DeclaredRepository() {
373+
this.getName() = ["repository", "snapshotRepository", "pluginRepository"]
374+
}
375+
376+
string getUrl() { result = getAChild("url").(PomElement).getValue() }
377+
}
378+
368379
/**
369380
* A folder that represents a maven local repository using the standard layout. Any folder called
370381
* "repository" with a parent name ".m2" is considered to be a maven repository.

0 commit comments

Comments
 (0)