diff --git a/core-java-modules/core-java-security-manager/README.md b/core-java-modules/core-java-security-manager/README.md
deleted file mode 100644
index a4abe7f80a..0000000000
--- a/core-java-modules/core-java-security-manager/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-### Relevant Articles:
-
-- [Intro to the Java SecurityManager](https://www.baeldung.com/java-security-manager)
diff --git a/core-java-modules/core-java-security-manager/pom.xml b/core-java-modules/core-java-security-manager/pom.xml
deleted file mode 100644
index 52f1554ace..0000000000
--- a/core-java-modules/core-java-security-manager/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
- 4.0.0
- core-java-security-manager
- 0.1.0-SNAPSHOT
- core-java-security-manager
- jar
-
-
- com.baeldung.core-java-modules
- core-java-modules
- 1.0.0-SNAPSHOT
-
-
-
diff --git a/core-java-modules/core-java-security-manager/src/test/java/com/baeldung/security/manager/SecurityManagerUnitTest.java b/core-java-modules/core-java-security-manager/src/test/java/com/baeldung/security/manager/SecurityManagerUnitTest.java
deleted file mode 100644
index a845f233b5..0000000000
--- a/core-java-modules/core-java-security-manager/src/test/java/com/baeldung/security/manager/SecurityManagerUnitTest.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.baeldung.security.manager;
-
-import org.junit.Test;
-
-import java.net.URL;
-import java.security.AccessControlException;
-import java.util.concurrent.Callable;
-
-public class SecurityManagerUnitTest {
-
- @Test(expected = AccessControlException.class)
- public void whenSecurityManagerIsActive_thenNetworkIsNotAccessibleByDefault() throws Exception {
- doTest(() -> {
- new URL("http://www.google.com").openConnection().connect();
- return null;
- });
- }
-
- @Test(expected = AccessControlException.class)
- public void whenUnauthorizedClassTriesToAccessProtectedOperation_thenAnExceptionIsThrown() throws Exception {
- doTest(() -> {
- new Service().operation();
- return null;
- });
- }
-
- private void doTest(Callable action) throws Exception {
- System.setSecurityManager(new SecurityManager());
- try {
- action.call();
- } finally {
- System.setSecurityManager(null);
- }
- }
-}
diff --git a/core-java-modules/core-java-security/README.md b/core-java-modules/core-java-security/README.md
index 7386d04e8e..ff9b1eef14 100644
--- a/core-java-modules/core-java-security/README.md
+++ b/core-java-modules/core-java-security/README.md
@@ -15,4 +15,5 @@ This module contains articles about core Java Security
- [The Java SecureRandom Class](https://www.baeldung.com/java-secure-random)
- [An Introduction to Java SASL](https://www.baeldung.com/java-sasl)
- [A Guide to Java GSS API](https://www.baeldung.com/java-gss)
+- [Intro to the Java SecurityManager](https://www.baeldung.com/java-security-manager)
diff --git a/core-java-modules/core-java-security-manager/src/main/java/com/baeldung/security/manager/CustomPermission.java b/core-java-modules/core-java-security/src/main/java/com/baeldung/securitymanager/CustomPermission.java
similarity index 87%
rename from core-java-modules/core-java-security-manager/src/main/java/com/baeldung/security/manager/CustomPermission.java
rename to core-java-modules/core-java-security/src/main/java/com/baeldung/securitymanager/CustomPermission.java
index 5f9c43336f..fa46353893 100644
--- a/core-java-modules/core-java-security-manager/src/main/java/com/baeldung/security/manager/CustomPermission.java
+++ b/core-java-modules/core-java-security/src/main/java/com/baeldung/securitymanager/CustomPermission.java
@@ -1,4 +1,4 @@
-package com.baeldung.security.manager;
+package com.baeldung.securitymanager;
import java.security.BasicPermission;
diff --git a/core-java-modules/core-java-security-manager/src/main/java/com/baeldung/security/manager/Service.java b/core-java-modules/core-java-security/src/main/java/com/baeldung/securitymanager/Service.java
similarity index 92%
rename from core-java-modules/core-java-security-manager/src/main/java/com/baeldung/security/manager/Service.java
rename to core-java-modules/core-java-security/src/main/java/com/baeldung/securitymanager/Service.java
index 1b9f14e3b8..21e0c0a657 100644
--- a/core-java-modules/core-java-security-manager/src/main/java/com/baeldung/security/manager/Service.java
+++ b/core-java-modules/core-java-security/src/main/java/com/baeldung/securitymanager/Service.java
@@ -1,4 +1,4 @@
-package com.baeldung.security.manager;
+package com.baeldung.securitymanager;
public class Service {
diff --git a/core-java-modules/core-java-security/src/test/java/org/baeldung/java/md5/JavaMD5UnitTest.java b/core-java-modules/core-java-security/src/test/java/com/baeldung/java/md5/JavaMD5UnitTest.java
similarity index 98%
rename from core-java-modules/core-java-security/src/test/java/org/baeldung/java/md5/JavaMD5UnitTest.java
rename to core-java-modules/core-java-security/src/test/java/com/baeldung/java/md5/JavaMD5UnitTest.java
index 55e71470c8..67d6918c09 100644
--- a/core-java-modules/core-java-security/src/test/java/org/baeldung/java/md5/JavaMD5UnitTest.java
+++ b/core-java-modules/core-java-security/src/test/java/com/baeldung/java/md5/JavaMD5UnitTest.java
@@ -1,4 +1,4 @@
-package org.baeldung.java.md5;
+package com.baeldung.java.md5;
import static org.assertj.core.api.Assertions.assertThat;
diff --git a/core-java-modules/core-java-security/src/test/java/com/baeldung/securitymanager/SecurityManagerUnitTest.java b/core-java-modules/core-java-security/src/test/java/com/baeldung/securitymanager/SecurityManagerUnitTest.java
new file mode 100644
index 0000000000..a7dcc949d2
--- /dev/null
+++ b/core-java-modules/core-java-security/src/test/java/com/baeldung/securitymanager/SecurityManagerUnitTest.java
@@ -0,0 +1,35 @@
+package com.baeldung.securitymanager;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.net.URL;
+import java.security.AccessControlException;
+
+public class SecurityManagerUnitTest {
+
+ private static final String TESTING_SECURITY_POLICY = "file:src/test/resources/testing.policy";
+
+ @Before
+ public void setUp() {
+ System.setProperty("java.security.policy", TESTING_SECURITY_POLICY);
+ System.setSecurityManager(new SecurityManager());
+ }
+
+ @After
+ public void tearDown() {
+ System.setSecurityManager(null);
+ }
+
+ @Test(expected = AccessControlException.class)
+ public void whenSecurityManagerIsActive_thenNetworkIsNotAccessibleByDefault() throws IOException {
+ new URL("http://www.google.com").openConnection().connect();
+ }
+
+ @Test(expected = AccessControlException.class)
+ public void whenUnauthorizedClassTriesToAccessProtectedOperation_thenAnExceptionIsThrown() {
+ new Service().operation();
+ }
+}
diff --git a/core-java-modules/core-java-security/src/test/resources/testing.policy b/core-java-modules/core-java-security/src/test/resources/testing.policy
new file mode 100644
index 0000000000..16ab8a1869
--- /dev/null
+++ b/core-java-modules/core-java-security/src/test/resources/testing.policy
@@ -0,0 +1,5 @@
+grant {
+ // This is for testing purposes only.
+ // It allows us to properly reset the security manager after the unit test completes.
+ permission java.lang.RuntimePermission "setSecurityManager";
+};
\ No newline at end of file
diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml
index dcc98d77f6..1dadbf1efa 100644
--- a/core-java-modules/pom.xml
+++ b/core-java-modules/pom.xml
@@ -18,7 +18,6 @@
core-java-optional
core-java-lang-operators
core-java-networking-2
- core-java-security-manager
core-java-date-operations