Skip to content

Commit 8e4190d

Browse files
authored
Merge pull request github#11516 from michaelnebel/java/externalflowcleanup
Java: Cleanup imports of `ExternalFlow`
2 parents b579e2e + fca249a commit 8e4190d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+31
-97
lines changed

java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -80,53 +80,6 @@ private import internal.FlowSummaryImplSpecific as FlowSummaryImplSpecific
8080
private import internal.AccessPathSyntax
8181
private import FlowSummary
8282

83-
/**
84-
* A module importing the frameworks that provide external flow data,
85-
* ensuring that they are visible to the taint tracking / data flow library.
86-
*/
87-
private module Frameworks {
88-
private import internal.ContainerFlow
89-
private import semmle.code.java.frameworks.android.Android
90-
private import semmle.code.java.frameworks.android.ContentProviders
91-
private import semmle.code.java.frameworks.android.ExternalStorage
92-
private import semmle.code.java.frameworks.android.Intent
93-
private import semmle.code.java.frameworks.android.SharedPreferences
94-
private import semmle.code.java.frameworks.android.Slice
95-
private import semmle.code.java.frameworks.android.SQLite
96-
private import semmle.code.java.frameworks.android.Widget
97-
private import semmle.code.java.frameworks.ApacheHttp
98-
private import semmle.code.java.frameworks.apache.Collections
99-
private import semmle.code.java.frameworks.apache.Lang
100-
private import semmle.code.java.frameworks.Flexjson
101-
private import semmle.code.java.frameworks.guava.Guava
102-
private import semmle.code.java.frameworks.jackson.JacksonSerializability
103-
private import semmle.code.java.frameworks.javaee.jsf.JSFRenderer
104-
private import semmle.code.java.frameworks.JaxWS
105-
private import semmle.code.java.frameworks.JoddJson
106-
private import semmle.code.java.frameworks.Stream
107-
private import semmle.code.java.frameworks.ratpack.RatpackExec
108-
private import semmle.code.java.frameworks.spring.SpringHttp
109-
private import semmle.code.java.frameworks.spring.SpringWebClient
110-
private import semmle.code.java.security.AndroidIntentRedirection
111-
private import semmle.code.java.security.ResponseSplitting
112-
private import semmle.code.java.security.InformationLeak
113-
private import semmle.code.java.security.FragmentInjection
114-
private import semmle.code.java.security.GroovyInjection
115-
private import semmle.code.java.security.ImplicitPendingIntents
116-
private import semmle.code.java.security.JndiInjection
117-
private import semmle.code.java.security.LdapInjection
118-
private import semmle.code.java.security.MvelInjection
119-
private import semmle.code.java.security.OgnlInjection
120-
private import semmle.code.java.security.TemplateInjection
121-
private import semmle.code.java.security.XPath
122-
private import semmle.code.java.security.XsltInjection
123-
private import semmle.code.java.frameworks.Jdbc
124-
private import semmle.code.java.frameworks.SpringJdbc
125-
private import semmle.code.java.frameworks.MyBatis
126-
private import semmle.code.java.frameworks.Hibernate
127-
private import semmle.code.java.frameworks.jOOQ
128-
}
129-
13083
/**
13184
* DEPRECATED: Define source models as data extensions instead.
13285
*

java/ql/lib/semmle/code/java/dataflow/FlowSources.qll

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@ abstract class RemoteFlowSource extends DataFlow::Node {
3636
abstract string getSourceType();
3737
}
3838

39+
/**
40+
* A module for importing frameworks that define remote flow sources.
41+
*/
42+
private module RemoteFlowSources {
43+
private import semmle.code.java.frameworks.android.Widget
44+
}
45+
3946
private class ExternalRemoteFlowSource extends RemoteFlowSource {
4047
ExternalRemoteFlowSource() { sourceNode(this, "remote") }
4148

java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,19 @@ private import semmle.code.java.dataflow.DataFlow
1010
* ensuring that they are visible to the taint tracking library.
1111
*/
1212
private module Frameworks {
13-
private import semmle.code.java.JDK
14-
private import semmle.code.java.frameworks.jackson.JacksonSerializability
1513
private import semmle.code.java.frameworks.android.AsyncTask
1614
private import semmle.code.java.frameworks.android.Intent
15+
private import semmle.code.java.frameworks.android.Slice
1716
private import semmle.code.java.frameworks.android.SQLite
17+
private import semmle.code.java.frameworks.apache.Lang
18+
private import semmle.code.java.frameworks.ApacheHttp
19+
private import semmle.code.java.frameworks.guava.Guava
1820
private import semmle.code.java.frameworks.Guice
21+
private import semmle.code.java.frameworks.jackson.JacksonSerializability
1922
private import semmle.code.java.frameworks.Properties
2023
private import semmle.code.java.frameworks.Protobuf
21-
private import semmle.code.java.frameworks.guava.Guava
22-
private import semmle.code.java.frameworks.apache.Lang
23-
private import semmle.code.java.frameworks.ApacheHttp
24+
private import semmle.code.java.frameworks.ratpack.RatpackExec
25+
private import semmle.code.java.JDK
2426
}
2527

2628
/**

java/ql/lib/semmle/code/java/dataflow/FlowSummary.qll

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,6 @@ import java
66
private import internal.FlowSummaryImpl as Impl
77
private import internal.DataFlowUtil
88

9-
// import all instances of SummarizedCallable below
10-
private module Summaries {
11-
private import semmle.code.java.dataflow.ExternalFlow
12-
}
13-
149
class SummaryComponent = Impl::Public::SummaryComponent;
1510

1611
/** Provides predicates for constructing summary components. */
@@ -102,6 +97,14 @@ abstract class SyntheticCallable extends string {
10297
Type getReturnType() { none() }
10398
}
10499

100+
/**
101+
* A module for importing frameworks that define synthetic callables.
102+
*/
103+
private module SyntheticCallables {
104+
private import semmle.code.java.frameworks.android.Intent
105+
private import semmle.code.java.frameworks.Stream
106+
}
107+
105108
private newtype TSummarizedCallableBase =
106109
TSimpleCallable(Callable c) { c.isSourceDeclaration() } or
107110
TSyntheticCallable(SyntheticCallable c)

java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import semmle.code.java.Collections
33
import semmle.code.java.Maps
44
private import semmle.code.java.dataflow.SSA
55
private import DataFlowUtil
6-
private import semmle.code.java.dataflow.ExternalFlow
76

87
private class EntryType extends RefType {
98
EntryType() {

java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImplSpecific.qll

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ private import semmle.code.java.dataflow.internal.AccessPathSyntax as AccessPath
1414

1515
class SummarizedCallableBase = FlowSummary::SummarizedCallableBase;
1616

17+
/**
18+
* A module for importing frameworks that define synthetic globals.
19+
*/
20+
private module SyntheticGlobals {
21+
private import semmle.code.java.frameworks.android.Intent
22+
}
23+
1724
DataFlowCallable inject(SummarizedCallable c) { result.asSummarizedCallable() = c }
1825

1926
/** Gets the parameter position of the instance parameter. */

java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingUtil.qll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ private import semmle.code.java.dataflow.internal.ContainerFlow
1010
private import semmle.code.java.frameworks.spring.SpringController
1111
private import semmle.code.java.frameworks.spring.SpringHttp
1212
private import semmle.code.java.frameworks.Networking
13-
private import semmle.code.java.dataflow.ExternalFlow
1413
private import semmle.code.java.dataflow.FlowSources
1514
private import semmle.code.java.dataflow.internal.DataFlowPrivate
1615
import semmle.code.java.dataflow.FlowSteps

java/ql/lib/semmle/code/java/frameworks/ApacheHttp.qll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import java
66
private import semmle.code.java.dataflow.FlowSteps
7-
private import semmle.code.java.dataflow.ExternalFlow
87

98
class ApacheHttpGetParams extends Method {
109
ApacheHttpGetParams() {

java/ql/lib/semmle/code/java/frameworks/Flexjson.qll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
*/
44

55
import java
6-
private import semmle.code.java.dataflow.ExternalFlow
76

87
/** The class `flexjson.JSONDeserializer`. */
98
class FlexjsonDeserializer extends RefType {

java/ql/lib/semmle/code/java/frameworks/Hibernate.qll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
*/
44

55
import java
6-
private import semmle.code.java.dataflow.ExternalFlow
76

87
/** The interface `org.hibernate.query.QueryProducer`. */
98
class HibernateQueryProducer extends RefType {

0 commit comments

Comments
 (0)