Skip to content
This repository was archived by the owner on Sep 24, 2025. It is now read-only.

Commit 85efa4a

Browse files
authored
Add object input filter on Connector (#1000)
* Add object input filter on Connector * Fix ambiguous import * Change setup jdk to 11
1 parent 1c6ba7c commit 85efa4a

4 files changed

Lines changed: 32 additions & 5 deletions

File tree

.github/workflows/run-build-with-test-on-pr.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ jobs:
2121
- name: Checkout
2222
uses: actions/checkout@v3
2323

24-
- name: Setup JDK 8
24+
- name: Setup JDK 11
2525
uses: actions/setup-java@v3
2626
with:
2727
distribution: 'zulu'
28-
java-version: '8.0.345'
28+
java-version: '11.0.22'
2929
architecture: x64
3030
cache: 'gradle'
3131

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ subprojects {
2828
compileJava.options.encoding = "UTF-8"
2929
compileTestJava.options.encoding = "UTF-8"
3030

31-
sourceCompatibility = 1.8
32-
targetCompatibility = 1.8
31+
sourceCompatibility = 11
32+
targetCompatibility = 11
3333

3434
ext {
3535
profile = project.hasProperty("profile") ? profile : "production"

ngrinder-core/src/main/java/net/grinder/communication/Connector.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import java.io.IOException;
2525
import java.io.InputStream;
26+
import java.io.ObjectInputFilter;
2627
import java.io.ObjectInputStream;
2728
import java.io.ObjectOutputStream;
2829
import java.io.OutputStream;
@@ -31,6 +32,8 @@
3132
import java.net.UnknownHostException;
3233

3334
import net.grinder.common.UncheckedInterruptedException;
35+
import net.grinder.common.processidentity.ProcessIdentity;
36+
import net.grinder.engine.controller.AbstractAgentControllerIdentityImplementation;
3437

3538

3639
/**
@@ -197,6 +200,23 @@ static ConnectDetails read(InputStream in) throws CommunicationException {
197200

198201
try {
199202
final ObjectInputStream objectInputStream = new ObjectInputStream(in);
203+
objectInputStream.setObjectInputFilter(filterInfo -> {
204+
if (filterInfo.serialClass() == null) {
205+
return ObjectInputFilter.Status.UNDECIDED;
206+
}
207+
208+
if (Address.class.isAssignableFrom(filterInfo.serialClass())
209+
|| ConnectionType.class.isAssignableFrom(filterInfo.serialClass())
210+
|| Enum.class.isAssignableFrom(filterInfo.serialClass())
211+
|| filterInfo.serialClass().getCanonicalName().startsWith("net.grinder.engine")
212+
|| filterInfo.serialClass().getCanonicalName().startsWith("net.grinder.common")
213+
) {
214+
return ObjectInputFilter.Status.ALLOWED;
215+
}
216+
217+
return ObjectInputFilter.Status.REJECTED;
218+
});
219+
200220
final ConnectionType type =
201221
(ConnectionType) objectInputStream.readObject();
202222
final Address address = (Address) objectInputStream.readObject();

ngrinder-runtime/src/main/java/org/ngrinder/dns/LocalManagedDnsImpl.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,14 @@
1313
*/
1414
package org.ngrinder.dns;
1515

16-
import org.xbill.DNS.*;
16+
import org.xbill.DNS.ARecord;
17+
import org.xbill.DNS.Cache;
18+
import org.xbill.DNS.DClass;
19+
import org.xbill.DNS.Lookup;
20+
import org.xbill.DNS.PTRRecord;
21+
import org.xbill.DNS.Record;
22+
import org.xbill.DNS.TextParseException;
23+
import org.xbill.DNS.Type;
1724

1825
import java.net.InetAddress;
1926
import java.net.UnknownHostException;

0 commit comments

Comments
 (0)