Skip to content

Commit dd444a9

Browse files
committed
Support phasing off SecurityManager usage in favor of Java Agent
Signed-off-by: Gulshan <[email protected]>
1 parent d686474 commit dd444a9

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

build.gradle

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ ext {
152152
}
153153
}
154154

155+
155156
allprojects {
156157
group = opensearch_group
157158
version = "${opensearch_build}"
@@ -181,6 +182,7 @@ allprojects {
181182
configurations {
182183
zipArchive
183184
secureIntegTestPluginArchive
185+
agent
184186
}
185187

186188
tasks.register("preparePluginPathDirs") {
@@ -286,6 +288,10 @@ dependencies {
286288
testFixturesImplementation fileTree(dir: knnJarDirectory, include: ["opensearch-knn-${opensearch_build}.jar", "remote-index-build-client-${opensearch_build}.jar"])
287289
testImplementation fileTree(dir: knnJarDirectory, include: ["opensearch-knn-${opensearch_build}.jar", "remote-index-build-client-${opensearch_build}.jar"])
288290
testImplementation "org.opensearch.plugin:parent-join-client:${opensearch_version}"
291+
292+
agent "org.opensearch:opensearch-agent-bootstrap:${opensearch_version}"
293+
agent "org.opensearch:opensearch-agent:${opensearch_version}"
294+
agent "net.bytebuddy:byte-buddy:${versions.bytebuddy}"
289295
}
290296

291297
// In order to add the jar to the classpath, we need to unzip the
@@ -460,3 +466,13 @@ task updateVersion {
460466
ant.replaceregexp(file:'build.gradle', match: '"opensearch.version", "\\d.*"', replace: '"opensearch.version", "' + newVersion.tokenize('-')[0] + '-SNAPSHOT"', flags:'g', byline:true)
461467
}
462468
}
469+
470+
task prepareAgent(type: Copy) {
471+
from(configurations.agent)
472+
into "$buildDir/agent"
473+
}
474+
475+
tasks.withType(Test) {
476+
dependsOn prepareAgent
477+
jvmArgs += ["-javaagent:" + project.layout.buildDirectory.file("agent/opensearch-agent-${opensearch_version}.jar").get()]
478+
}

qa/build.gradle

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ java {
2828

2929
configurations {
3030
zipArchive
31+
agent
3132
}
3233

3334
def knnJarDirectory = "$rootDir/build/dependencies/opensearch-knn"
@@ -53,6 +54,10 @@ dependencies {
5354
api "junit:junit:${versions.junit}"
5455
testImplementation "org.opensearch.test:framework:${opensearch_version}"
5556
testImplementation(testFixtures(rootProject))
57+
58+
agent "org.opensearch:opensearch-agent-bootstrap:${opensearch_version}"
59+
agent "org.opensearch:opensearch-agent:${opensearch_version}"
60+
agent "net.bytebuddy:byte-buddy:${versions.bytebuddy}"
5661
}
5762

5863
ext {
@@ -246,3 +251,13 @@ task bwcTestSuite {
246251
dependsOn ":qa:restart-upgrade:testAgainstNewCluster"
247252
dependsOn ":qa:rolling-upgrade:testRollingUpgrade"
248253
}
254+
255+
task prepareAgent(type: Copy) {
256+
from(configurations.agent)
257+
into "$buildDir/agent"
258+
}
259+
260+
tasks.withType(Test) {
261+
dependsOn prepareAgent
262+
jvmArgs += ["-javaagent:" + project.layout.buildDirectory.file("agent/opensearch-agent-${opensearch_version}.jar").get()]
263+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
1+
2+
grant codeBase "${codebase.opensearch}" {
3+
permission java.net.SocketPermission "*", "connect,resolve";
4+
};
5+
16
grant {
27
//ml-commons client
38
permission java.lang.RuntimePermission "getClassLoader";
49
permission java.lang.RuntimePermission "accessDeclaredMembers";
510
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
611
permission java.lang.RuntimePermission "setContextClassLoader";
12+
13+
// temporary for testing
14+
permission java.net.SocketPermission "*", "connect,resolve";
15+
716
};

0 commit comments

Comments
 (0)