From 3904d4156596709c86ff40c2a1e44496938f6074 Mon Sep 17 00:00:00 2001 From: eelhazati Date: Sun, 12 Jan 2020 10:48:31 +0100 Subject: [PATCH 1/9] security jaas --- pom.xml | 1 + security-jaas/jaas-app/pom.xml | 40 ++++++++++ .../jaas/app/ConsoleCallbackHandler.java | 24 ++++++ .../security/jaas/app/JaasAuthentication.java | 13 ++++ .../security/jaas/app/JaasAuthorization.java | 17 +++++ .../security/jaas/app/LoginService.java | 14 ++++ .../security/jaas/app/ResourceAction.java | 15 ++++ .../security/jaas/app/ResourcePermission.java | 9 +++ security-jaas/jaas-login-module/pom.xml | 14 ++++ .../authentication/InMemoryLoginModule.java | 76 +++++++++++++++++++ security-jaas/jaas.login.config | 3 + security-jaas/jaas.policy | 14 ++++ security-jaas/pom.xml | 27 +++++++ security-jaas/run-authentication.bat | 1 + security-jaas/run-authorization.bat | 1 + 15 files changed, 269 insertions(+) create mode 100644 security-jaas/jaas-app/pom.xml create mode 100644 security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ConsoleCallbackHandler.java create mode 100644 security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthentication.java create mode 100644 security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthorization.java create mode 100644 security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/LoginService.java create mode 100644 security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourceAction.java create mode 100644 security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourcePermission.java create mode 100644 security-jaas/jaas-login-module/pom.xml create mode 100644 security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java create mode 100644 security-jaas/jaas.login.config create mode 100644 security-jaas/jaas.policy create mode 100644 security-jaas/pom.xml create mode 100644 security-jaas/run-authentication.bat create mode 100644 security-jaas/run-authorization.bat diff --git a/pom.xml b/pom.xml index 71e5d21b02..a9ec0513e1 100644 --- a/pom.xml +++ b/pom.xml @@ -636,6 +636,7 @@ webrtc wildfly quarkus-extension + security-jaas diff --git a/security-jaas/jaas-app/pom.xml b/security-jaas/jaas-app/pom.xml new file mode 100644 index 0000000000..0cc068c2de --- /dev/null +++ b/security-jaas/jaas-app/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + + + com.baeldung.security.jaas + security-jaas + 1.0-SNAPSHOT + + jaas-app + + + + + maven-jar-plugin + 3.1.2 + + + + true + com.baeldung.security.jaas.JaasApplication + + + + + + + + + + com.baeldung.security.jaas + jaas-login-module + 1.0-SNAPSHOT + provided + + + + \ No newline at end of file diff --git a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ConsoleCallbackHandler.java b/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ConsoleCallbackHandler.java new file mode 100644 index 0000000000..c5d7e9f6df --- /dev/null +++ b/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ConsoleCallbackHandler.java @@ -0,0 +1,24 @@ +package com.baeldung.security.jaas.app; + +import javax.security.auth.callback.*; +import java.io.Console; +import java.io.IOException; + +public class ConsoleCallbackHandler implements CallbackHandler { + + @Override + public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { + Console console = System.console(); + for (Callback callback : callbacks) { + if (callback instanceof NameCallback) { + NameCallback nameCallback = (NameCallback) callback; + nameCallback.setName(console.readLine(nameCallback.getPrompt())); + } else if (callback instanceof PasswordCallback) { + PasswordCallback passwordCallback = (PasswordCallback) callback; + passwordCallback.setPassword(console.readPassword(passwordCallback.getPrompt())); + } else { + throw new UnsupportedCallbackException(callback); + } + } + } +} diff --git a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthentication.java b/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthentication.java new file mode 100644 index 0000000000..8e519c8854 --- /dev/null +++ b/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthentication.java @@ -0,0 +1,13 @@ +package com.baeldung.security.jaas.app; + +import javax.security.auth.Subject; +import javax.security.auth.login.LoginException; + +public class JaasAuthentication { + + public static void main(String[] args) throws LoginException { + LoginService loginService = new LoginService(); + Subject subject = loginService.login(); + System.out.println(subject.getPrincipals().iterator().next() + " sucessfully logeed in"); + } +} diff --git a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthorization.java b/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthorization.java new file mode 100644 index 0000000000..27e08bc6ca --- /dev/null +++ b/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthorization.java @@ -0,0 +1,17 @@ +package com.baeldung.security.jaas.app; + +import javax.security.auth.Subject; +import javax.security.auth.login.LoginException; +import java.security.PrivilegedAction; + +public class JaasAuthorization { + + public static void main(String[] args) throws LoginException { + + LoginService loginService = new LoginService(); + Subject subject = loginService.login(); + + PrivilegedAction privilegedAction = new ResourceAction(); + Subject.doAsPrivileged(subject, privilegedAction, null); + } +} diff --git a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/LoginService.java b/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/LoginService.java new file mode 100644 index 0000000000..8eff76527a --- /dev/null +++ b/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/LoginService.java @@ -0,0 +1,14 @@ +package com.baeldung.security.jaas.app; + +import javax.security.auth.Subject; +import javax.security.auth.login.LoginContext; +import javax.security.auth.login.LoginException; + +public class LoginService { + + public Subject login() throws LoginException { + LoginContext loginContext = new LoginContext("jaasApplication", new ConsoleCallbackHandler()); + loginContext.login(); + return loginContext.getSubject(); + } +} diff --git a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourceAction.java b/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourceAction.java new file mode 100644 index 0000000000..28d13775da --- /dev/null +++ b/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourceAction.java @@ -0,0 +1,15 @@ +package com.baeldung.security.jaas.app; + +import java.security.PrivilegedAction; + +public class ResourceAction implements PrivilegedAction { + @Override + public Object run() { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) { + sm.checkPermission(new ResourcePermission("test_resource")); + } + System.out.println("I have access to test_resource !"); + return null; + } +} diff --git a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourcePermission.java b/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourcePermission.java new file mode 100644 index 0000000000..c2a94579f2 --- /dev/null +++ b/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourcePermission.java @@ -0,0 +1,9 @@ +package com.baeldung.security.jaas.app; + +import java.security.BasicPermission; + +public class ResourcePermission extends BasicPermission { + public ResourcePermission(String name) { + super(name); + } +} \ No newline at end of file diff --git a/security-jaas/jaas-login-module/pom.xml b/security-jaas/jaas-login-module/pom.xml new file mode 100644 index 0000000000..371aaf3a8f --- /dev/null +++ b/security-jaas/jaas-login-module/pom.xml @@ -0,0 +1,14 @@ + + + 4.0.0 + + + com.baeldung.security.jaas + security-jaas + 1.0-SNAPSHOT + + jaas-login-module + + \ No newline at end of file diff --git a/security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java b/security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java new file mode 100644 index 0000000000..4a9051ce81 --- /dev/null +++ b/security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java @@ -0,0 +1,76 @@ +package com.baeldung.security.jaas.authentication; + +import com.sun.security.auth.UserPrincipal; + +import javax.security.auth.Subject; +import javax.security.auth.callback.*; +import javax.security.auth.login.LoginException; +import javax.security.auth.spi.LoginModule; +import java.io.IOException; +import java.security.Principal; +import java.util.Map; + +public class InMemoryLoginModule implements LoginModule { + + private static final String USERNAME = "testuser"; + private static final String PASSWORD = "testpassword"; + + private Subject subject; + private CallbackHandler callbackHandler; + private Map sharedState; + private Map options; + + private String username; + private boolean loginSucceeded = false; + private Principal userPrincipal; + + @Override + public void initialize(Subject subject, + CallbackHandler callbackHandler, + Map sharedState, + Map options) { + this.subject = subject; + this.callbackHandler = callbackHandler; + this.sharedState = sharedState; + this.options = options; + } + + @Override + public boolean login() throws LoginException { + NameCallback nameCallback = new NameCallback("username: "); + PasswordCallback passwordCallback = new PasswordCallback("password: ", false); + try { + callbackHandler.handle(new Callback[]{nameCallback, passwordCallback}); + username = nameCallback.getName(); + String password = new String(passwordCallback.getPassword()); + if (USERNAME.equals(username) && PASSWORD.equals(password)) { + loginSucceeded = true; + } + } catch (IOException | UnsupportedCallbackException e) { + //... + } + return loginSucceeded; + } + + @Override + public boolean commit() throws LoginException { + if (!loginSucceeded) { + return false; + } + userPrincipal = new UserPrincipal(username); + subject.getPrincipals().add(userPrincipal); + return true; + } + + @Override + public boolean abort() throws LoginException { + logout(); + return true; + } + + @Override + public boolean logout() throws LoginException { + subject.getPrincipals().remove(userPrincipal); + return false; + } +} diff --git a/security-jaas/jaas.login.config b/security-jaas/jaas.login.config new file mode 100644 index 0000000000..4b0a64540b --- /dev/null +++ b/security-jaas/jaas.login.config @@ -0,0 +1,3 @@ +jaasApplication { + com.baeldung.security.jaas.authentication.InMemoryLoginModule required debug=true; +}; diff --git a/security-jaas/jaas.policy b/security-jaas/jaas.policy new file mode 100644 index 0000000000..0f5b3cbe33 --- /dev/null +++ b/security-jaas/jaas.policy @@ -0,0 +1,14 @@ +grant codebase "file:./jaas-app/target/jaas-app.jar" { + permission javax.security.auth.AuthPermission "createLoginContext.jaasApplication"; + permission javax.security.auth.AuthPermission "doAsPrivileged"; + permission java.lang.RuntimePermission "readFileDescriptor"; + permission java.lang.RuntimePermission "writeFileDescriptor"; +}; + +grant codebase "file:./jaas-login-module/target/jaas-login-module.jar" { + permission javax.security.auth.AuthPermission "modifyPrincipals"; +}; + +grant principal com.sun.security.auth.UserPrincipal "testuser" { + permission com.baeldung.security.jaas.app.ResourcePermission "test_resource"; +}; diff --git a/security-jaas/pom.xml b/security-jaas/pom.xml new file mode 100644 index 0000000000..1e256d4668 --- /dev/null +++ b/security-jaas/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + com.baeldung.security.jaas + security-jaas + 1.0-SNAPSHOT + pom + + + 1.8 + 1.8 + UTF-8 + + + + jaas-app + jaas-login-module + + + + ${project.artifactId} + + + \ No newline at end of file diff --git a/security-jaas/run-authentication.bat b/security-jaas/run-authentication.bat new file mode 100644 index 0000000000..1ee2c2398a --- /dev/null +++ b/security-jaas/run-authentication.bat @@ -0,0 +1 @@ +java -Djava.security.auth.login.config=jaas.login.config -classpath jaas-app/target/jaas-app.jar;jaas-login-module/target/jaas-login-module.jar com.baeldung.security.jaas.app.JaasAuthentication \ No newline at end of file diff --git a/security-jaas/run-authorization.bat b/security-jaas/run-authorization.bat new file mode 100644 index 0000000000..fdb1501ff4 --- /dev/null +++ b/security-jaas/run-authorization.bat @@ -0,0 +1 @@ +java -Djava.security.manager -Djava.security.policy=jaas.policy -Djava.security.auth.login.config=jaas.login.config -classpath %JAVA_HOME%\lib;jaas-app/target/jaas-app.jar;jaas-login-module/target/jaas-login-module.jar com.baeldung.security.jaas.app.JaasAuthorization \ No newline at end of file From 124fe18ffec03de7dfc731ecde4b05261aaa8abc Mon Sep 17 00:00:00 2001 From: eelhazati Date: Tue, 28 Jan 2020 21:30:00 +0100 Subject: [PATCH 2/9] security jaas: tabs --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a9ec0513e1..5d8181a7bc 100644 --- a/pom.xml +++ b/pom.xml @@ -636,7 +636,7 @@ webrtc wildfly quarkus-extension - security-jaas + security-jaas From 5d6cff491ed7cb129dd336bcde82f1452a765447 Mon Sep 17 00:00:00 2001 From: eelhazati Date: Tue, 28 Jan 2020 21:38:07 +0100 Subject: [PATCH 3/9] security jaas: tabs --- .../jaas/authentication/InMemoryLoginModule.java | 4 +--- security-jaas/jaas.policy | 10 +++++----- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java b/security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java index 4a9051ce81..27b57072cd 100644 --- a/security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java +++ b/security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java @@ -25,9 +25,7 @@ public class InMemoryLoginModule implements LoginModule { private Principal userPrincipal; @Override - public void initialize(Subject subject, - CallbackHandler callbackHandler, - Map sharedState, + public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) { this.subject = subject; this.callbackHandler = callbackHandler; diff --git a/security-jaas/jaas.policy b/security-jaas/jaas.policy index 0f5b3cbe33..d3109d62e7 100644 --- a/security-jaas/jaas.policy +++ b/security-jaas/jaas.policy @@ -1,8 +1,8 @@ grant codebase "file:./jaas-app/target/jaas-app.jar" { - permission javax.security.auth.AuthPermission "createLoginContext.jaasApplication"; - permission javax.security.auth.AuthPermission "doAsPrivileged"; - permission java.lang.RuntimePermission "readFileDescriptor"; - permission java.lang.RuntimePermission "writeFileDescriptor"; + permission javax.security.auth.AuthPermission "createLoginContext.jaasApplication"; + permission javax.security.auth.AuthPermission "doAsPrivileged"; + permission java.lang.RuntimePermission "readFileDescriptor"; + permission java.lang.RuntimePermission "writeFileDescriptor"; }; grant codebase "file:./jaas-login-module/target/jaas-login-module.jar" { @@ -10,5 +10,5 @@ grant codebase "file:./jaas-login-module/target/jaas-login-module.jar" { }; grant principal com.sun.security.auth.UserPrincipal "testuser" { - permission com.baeldung.security.jaas.app.ResourcePermission "test_resource"; + permission com.baeldung.security.jaas.app.ResourcePermission "test_resource"; }; From a655119424acf72f001dbc1a389f6bd49f4810e1 Mon Sep 17 00:00:00 2001 From: eelhazati <35301254+eelhazati@users.noreply.github.com> Date: Mon, 3 Feb 2020 21:17:33 +0100 Subject: [PATCH 4/9] Update InMemoryLoginModule.java --- .../security/jaas/authentication/InMemoryLoginModule.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java b/security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java index 27b57072cd..8a48e36401 100644 --- a/security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java +++ b/security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java @@ -45,7 +45,7 @@ public class InMemoryLoginModule implements LoginModule { loginSucceeded = true; } } catch (IOException | UnsupportedCallbackException e) { - //... + throw new LoginException("Can't login"); } return loginSucceeded; } From 1bfac7ea530e165149f6aa2f2a36e153ea19d523 Mon Sep 17 00:00:00 2001 From: eelhazati Date: Sat, 29 Feb 2020 16:46:05 +0100 Subject: [PATCH 5/9] move jaas to core security module. --- .../core-java-security/README.md | 1 + .../jaas}/ConsoleCallbackHandler.java | 2 +- .../baeldung/jaas}/JaasAuthentication.java | 2 +- .../com/baeldung/jaas}/JaasAuthorization.java | 2 +- .../java/com/baeldung/jaas}/LoginService.java | 2 +- .../com/baeldung/jaas}/ResourceAction.java | 2 +- .../baeldung/jaas}/ResourcePermission.java | 2 +- .../loginmodule}/InMemoryLoginModule.java | 2 +- .../src/main/resources/jaas/jaas.login.config | 3 ++ .../src/main/resources/jaas}/jaas.policy | 6 +-- pom.xml | 1 - security-jaas/jaas-app/pom.xml | 40 ------------------- security-jaas/jaas-login-module/pom.xml | 14 ------- security-jaas/jaas.login.config | 3 -- security-jaas/pom.xml | 27 ------------- security-jaas/run-authentication.bat | 1 - security-jaas/run-authorization.bat | 1 - 17 files changed, 14 insertions(+), 97 deletions(-) rename {security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app => core-java-modules/core-java-security/src/main/java/com/baeldung/jaas}/ConsoleCallbackHandler.java (95%) rename {security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app => core-java-modules/core-java-security/src/main/java/com/baeldung/jaas}/JaasAuthentication.java (90%) rename {security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app => core-java-modules/core-java-security/src/main/java/com/baeldung/jaas}/JaasAuthorization.java (92%) rename {security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app => core-java-modules/core-java-security/src/main/java/com/baeldung/jaas}/LoginService.java (90%) rename {security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app => core-java-modules/core-java-security/src/main/java/com/baeldung/jaas}/ResourceAction.java (90%) rename {security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app => core-java-modules/core-java-security/src/main/java/com/baeldung/jaas}/ResourcePermission.java (80%) rename {security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication => core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/loginmodule}/InMemoryLoginModule.java (97%) create mode 100644 core-java-modules/core-java-security/src/main/resources/jaas/jaas.login.config rename {security-jaas => core-java-modules/core-java-security/src/main/resources/jaas}/jaas.policy (67%) delete mode 100644 security-jaas/jaas-app/pom.xml delete mode 100644 security-jaas/jaas-login-module/pom.xml delete mode 100644 security-jaas/jaas.login.config delete mode 100644 security-jaas/pom.xml delete mode 100644 security-jaas/run-authentication.bat delete mode 100644 security-jaas/run-authorization.bat diff --git a/core-java-modules/core-java-security/README.md b/core-java-modules/core-java-security/README.md index ff9b1eef14..2340813c27 100644 --- a/core-java-modules/core-java-security/README.md +++ b/core-java-modules/core-java-security/README.md @@ -16,4 +16,5 @@ This module contains articles about core Java Security - [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) +- [Guide To The Java Authentication And Authorization Service (JAAS)](https://www.baeldung.com/java-security-jaas) diff --git a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ConsoleCallbackHandler.java b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ConsoleCallbackHandler.java similarity index 95% rename from security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ConsoleCallbackHandler.java rename to core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ConsoleCallbackHandler.java index c5d7e9f6df..714879e862 100644 --- a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ConsoleCallbackHandler.java +++ b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ConsoleCallbackHandler.java @@ -1,4 +1,4 @@ -package com.baeldung.security.jaas.app; +package com.baeldung.jaas; import javax.security.auth.callback.*; import java.io.Console; diff --git a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthentication.java b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/JaasAuthentication.java similarity index 90% rename from security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthentication.java rename to core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/JaasAuthentication.java index 8e519c8854..263daa4008 100644 --- a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthentication.java +++ b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/JaasAuthentication.java @@ -1,4 +1,4 @@ -package com.baeldung.security.jaas.app; +package com.baeldung.jaas; import javax.security.auth.Subject; import javax.security.auth.login.LoginException; diff --git a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthorization.java b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/JaasAuthorization.java similarity index 92% rename from security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthorization.java rename to core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/JaasAuthorization.java index 27e08bc6ca..b01179c4d6 100644 --- a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/JaasAuthorization.java +++ b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/JaasAuthorization.java @@ -1,4 +1,4 @@ -package com.baeldung.security.jaas.app; +package com.baeldung.jaas; import javax.security.auth.Subject; import javax.security.auth.login.LoginException; diff --git a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/LoginService.java b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/LoginService.java similarity index 90% rename from security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/LoginService.java rename to core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/LoginService.java index 8eff76527a..72c18d211c 100644 --- a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/LoginService.java +++ b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/LoginService.java @@ -1,4 +1,4 @@ -package com.baeldung.security.jaas.app; +package com.baeldung.jaas; import javax.security.auth.Subject; import javax.security.auth.login.LoginContext; diff --git a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourceAction.java b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ResourceAction.java similarity index 90% rename from security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourceAction.java rename to core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ResourceAction.java index 28d13775da..274f280c2b 100644 --- a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourceAction.java +++ b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ResourceAction.java @@ -1,4 +1,4 @@ -package com.baeldung.security.jaas.app; +package com.baeldung.jaas; import java.security.PrivilegedAction; diff --git a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourcePermission.java b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ResourcePermission.java similarity index 80% rename from security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourcePermission.java rename to core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ResourcePermission.java index c2a94579f2..1ea162f002 100644 --- a/security-jaas/jaas-app/src/main/java/com/baeldung/security/jaas/app/ResourcePermission.java +++ b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ResourcePermission.java @@ -1,4 +1,4 @@ -package com.baeldung.security.jaas.app; +package com.baeldung.jaas; import java.security.BasicPermission; diff --git a/security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/loginmodule/InMemoryLoginModule.java similarity index 97% rename from security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java rename to core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/loginmodule/InMemoryLoginModule.java index 8a48e36401..6ab606530b 100644 --- a/security-jaas/jaas-login-module/src/main/java/com/baeldung/security/jaas/authentication/InMemoryLoginModule.java +++ b/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/loginmodule/InMemoryLoginModule.java @@ -1,4 +1,4 @@ -package com.baeldung.security.jaas.authentication; +package com.baeldung.jaas.loginmodule; import com.sun.security.auth.UserPrincipal; diff --git a/core-java-modules/core-java-security/src/main/resources/jaas/jaas.login.config b/core-java-modules/core-java-security/src/main/resources/jaas/jaas.login.config new file mode 100644 index 0000000000..1163f60c84 --- /dev/null +++ b/core-java-modules/core-java-security/src/main/resources/jaas/jaas.login.config @@ -0,0 +1,3 @@ +jaasApplication { + com.baeldung.jaas.loginmodule.InMemoryLoginModule required debug=true; +}; diff --git a/security-jaas/jaas.policy b/core-java-modules/core-java-security/src/main/resources/jaas/jaas.policy similarity index 67% rename from security-jaas/jaas.policy rename to core-java-modules/core-java-security/src/main/resources/jaas/jaas.policy index d3109d62e7..fa95bfed30 100644 --- a/security-jaas/jaas.policy +++ b/core-java-modules/core-java-security/src/main/resources/jaas/jaas.policy @@ -1,14 +1,14 @@ -grant codebase "file:./jaas-app/target/jaas-app.jar" { +grant codebase "file:./target/core-java-security-0.1.0-SNAPSHOT.jar" { permission javax.security.auth.AuthPermission "createLoginContext.jaasApplication"; permission javax.security.auth.AuthPermission "doAsPrivileged"; permission java.lang.RuntimePermission "readFileDescriptor"; permission java.lang.RuntimePermission "writeFileDescriptor"; }; -grant codebase "file:./jaas-login-module/target/jaas-login-module.jar" { +grant codebase "file:./target/core-java-security-0.1.0-SNAPSHOT.jar" { permission javax.security.auth.AuthPermission "modifyPrincipals"; }; grant principal com.sun.security.auth.UserPrincipal "testuser" { - permission com.baeldung.security.jaas.app.ResourcePermission "test_resource"; + permission com.baeldung.jaas.ResourcePermission "test_resource"; }; diff --git a/pom.xml b/pom.xml index 5d8181a7bc..71e5d21b02 100644 --- a/pom.xml +++ b/pom.xml @@ -636,7 +636,6 @@ webrtc wildfly quarkus-extension - security-jaas diff --git a/security-jaas/jaas-app/pom.xml b/security-jaas/jaas-app/pom.xml deleted file mode 100644 index 0cc068c2de..0000000000 --- a/security-jaas/jaas-app/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - 4.0.0 - - - com.baeldung.security.jaas - security-jaas - 1.0-SNAPSHOT - - jaas-app - - - - - maven-jar-plugin - 3.1.2 - - - - true - com.baeldung.security.jaas.JaasApplication - - - - - - - - - - com.baeldung.security.jaas - jaas-login-module - 1.0-SNAPSHOT - provided - - - - \ No newline at end of file diff --git a/security-jaas/jaas-login-module/pom.xml b/security-jaas/jaas-login-module/pom.xml deleted file mode 100644 index 371aaf3a8f..0000000000 --- a/security-jaas/jaas-login-module/pom.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - 4.0.0 - - - com.baeldung.security.jaas - security-jaas - 1.0-SNAPSHOT - - jaas-login-module - - \ No newline at end of file diff --git a/security-jaas/jaas.login.config b/security-jaas/jaas.login.config deleted file mode 100644 index 4b0a64540b..0000000000 --- a/security-jaas/jaas.login.config +++ /dev/null @@ -1,3 +0,0 @@ -jaasApplication { - com.baeldung.security.jaas.authentication.InMemoryLoginModule required debug=true; -}; diff --git a/security-jaas/pom.xml b/security-jaas/pom.xml deleted file mode 100644 index 1e256d4668..0000000000 --- a/security-jaas/pom.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - 4.0.0 - - com.baeldung.security.jaas - security-jaas - 1.0-SNAPSHOT - pom - - - 1.8 - 1.8 - UTF-8 - - - - jaas-app - jaas-login-module - - - - ${project.artifactId} - - - \ No newline at end of file diff --git a/security-jaas/run-authentication.bat b/security-jaas/run-authentication.bat deleted file mode 100644 index 1ee2c2398a..0000000000 --- a/security-jaas/run-authentication.bat +++ /dev/null @@ -1 +0,0 @@ -java -Djava.security.auth.login.config=jaas.login.config -classpath jaas-app/target/jaas-app.jar;jaas-login-module/target/jaas-login-module.jar com.baeldung.security.jaas.app.JaasAuthentication \ No newline at end of file diff --git a/security-jaas/run-authorization.bat b/security-jaas/run-authorization.bat deleted file mode 100644 index fdb1501ff4..0000000000 --- a/security-jaas/run-authorization.bat +++ /dev/null @@ -1 +0,0 @@ -java -Djava.security.manager -Djava.security.policy=jaas.policy -Djava.security.auth.login.config=jaas.login.config -classpath %JAVA_HOME%\lib;jaas-app/target/jaas-app.jar;jaas-login-module/target/jaas-login-module.jar com.baeldung.security.jaas.app.JaasAuthorization \ No newline at end of file From 735ce1e7d5ae4c0b4dfa7229e4732c772c82c875 Mon Sep 17 00:00:00 2001 From: eelhazati <35301254+eelhazati@users.noreply.github.com> Date: Fri, 6 Mar 2020 15:19:36 +0100 Subject: [PATCH 6/9] revert --- core-java-modules/core-java-security/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/core-java-modules/core-java-security/README.md b/core-java-modules/core-java-security/README.md index 2340813c27..ff9b1eef14 100644 --- a/core-java-modules/core-java-security/README.md +++ b/core-java-modules/core-java-security/README.md @@ -16,5 +16,4 @@ This module contains articles about core Java Security - [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) -- [Guide To The Java Authentication And Authorization Service (JAAS)](https://www.baeldung.com/java-security-jaas) From e0f49f5575bf9a53f4304681dba4513b54f3bcb8 Mon Sep 17 00:00:00 2001 From: eelhazati Date: Sun, 8 Mar 2020 22:27:53 +0100 Subject: [PATCH 7/9] move code to core-java-security-2 --- core-java-modules/core-java-security-2/pom.xml | 17 +++++++++++++++++ .../baeldung/jaas/ConsoleCallbackHandler.java | 0 .../com/baeldung/jaas/JaasAuthentication.java | 0 .../com/baeldung/jaas/JaasAuthorization.java | 0 .../java/com/baeldung/jaas/LoginService.java | 0 .../java/com/baeldung/jaas/ResourceAction.java | 0 .../com/baeldung/jaas/ResourcePermission.java | 0 .../jaas/loginmodule/InMemoryLoginModule.java | 0 .../src/main/resources/jaas/jaas.login.config | 0 .../src/main/resources/jaas/jaas.policy | 4 ++-- pom.xml | 2 ++ 11 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 core-java-modules/core-java-security-2/pom.xml rename core-java-modules/{core-java-security => core-java-security-2}/src/main/java/com/baeldung/jaas/ConsoleCallbackHandler.java (100%) rename core-java-modules/{core-java-security => core-java-security-2}/src/main/java/com/baeldung/jaas/JaasAuthentication.java (100%) rename core-java-modules/{core-java-security => core-java-security-2}/src/main/java/com/baeldung/jaas/JaasAuthorization.java (100%) rename core-java-modules/{core-java-security => core-java-security-2}/src/main/java/com/baeldung/jaas/LoginService.java (100%) rename core-java-modules/{core-java-security => core-java-security-2}/src/main/java/com/baeldung/jaas/ResourceAction.java (100%) rename core-java-modules/{core-java-security => core-java-security-2}/src/main/java/com/baeldung/jaas/ResourcePermission.java (100%) rename core-java-modules/{core-java-security => core-java-security-2}/src/main/java/com/baeldung/jaas/loginmodule/InMemoryLoginModule.java (100%) rename core-java-modules/{core-java-security => core-java-security-2}/src/main/resources/jaas/jaas.login.config (100%) rename core-java-modules/{core-java-security => core-java-security-2}/src/main/resources/jaas/jaas.policy (77%) diff --git a/core-java-modules/core-java-security-2/pom.xml b/core-java-modules/core-java-security-2/pom.xml new file mode 100644 index 0000000000..43a55e3e0d --- /dev/null +++ b/core-java-modules/core-java-security-2/pom.xml @@ -0,0 +1,17 @@ + + + 4.0.0 + core-java-security-2 + 0.1.0-SNAPSHOT + core-java-security-2 + jar + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + diff --git a/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ConsoleCallbackHandler.java b/core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/ConsoleCallbackHandler.java similarity index 100% rename from core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ConsoleCallbackHandler.java rename to core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/ConsoleCallbackHandler.java diff --git a/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/JaasAuthentication.java b/core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/JaasAuthentication.java similarity index 100% rename from core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/JaasAuthentication.java rename to core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/JaasAuthentication.java diff --git a/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/JaasAuthorization.java b/core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/JaasAuthorization.java similarity index 100% rename from core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/JaasAuthorization.java rename to core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/JaasAuthorization.java diff --git a/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/LoginService.java b/core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/LoginService.java similarity index 100% rename from core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/LoginService.java rename to core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/LoginService.java diff --git a/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ResourceAction.java b/core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/ResourceAction.java similarity index 100% rename from core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ResourceAction.java rename to core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/ResourceAction.java diff --git a/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ResourcePermission.java b/core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/ResourcePermission.java similarity index 100% rename from core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/ResourcePermission.java rename to core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/ResourcePermission.java diff --git a/core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/loginmodule/InMemoryLoginModule.java b/core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/loginmodule/InMemoryLoginModule.java similarity index 100% rename from core-java-modules/core-java-security/src/main/java/com/baeldung/jaas/loginmodule/InMemoryLoginModule.java rename to core-java-modules/core-java-security-2/src/main/java/com/baeldung/jaas/loginmodule/InMemoryLoginModule.java diff --git a/core-java-modules/core-java-security/src/main/resources/jaas/jaas.login.config b/core-java-modules/core-java-security-2/src/main/resources/jaas/jaas.login.config similarity index 100% rename from core-java-modules/core-java-security/src/main/resources/jaas/jaas.login.config rename to core-java-modules/core-java-security-2/src/main/resources/jaas/jaas.login.config diff --git a/core-java-modules/core-java-security/src/main/resources/jaas/jaas.policy b/core-java-modules/core-java-security-2/src/main/resources/jaas/jaas.policy similarity index 77% rename from core-java-modules/core-java-security/src/main/resources/jaas/jaas.policy rename to core-java-modules/core-java-security-2/src/main/resources/jaas/jaas.policy index fa95bfed30..77f44dbd87 100644 --- a/core-java-modules/core-java-security/src/main/resources/jaas/jaas.policy +++ b/core-java-modules/core-java-security-2/src/main/resources/jaas/jaas.policy @@ -1,11 +1,11 @@ -grant codebase "file:./target/core-java-security-0.1.0-SNAPSHOT.jar" { +grant codebase "file:./target/core-java-security-2-0.1.0-SNAPSHOT.jar" { permission javax.security.auth.AuthPermission "createLoginContext.jaasApplication"; permission javax.security.auth.AuthPermission "doAsPrivileged"; permission java.lang.RuntimePermission "readFileDescriptor"; permission java.lang.RuntimePermission "writeFileDescriptor"; }; -grant codebase "file:./target/core-java-security-0.1.0-SNAPSHOT.jar" { +grant codebase "file:./target/core-java-security-2-0.1.0-SNAPSHOT.jar" { permission javax.security.auth.AuthPermission "modifyPrincipals"; }; diff --git a/pom.xml b/pom.xml index 71e5d21b02..512d814488 100644 --- a/pom.xml +++ b/pom.xml @@ -431,6 +431,7 @@ core-java-modules/core-java-nio core-java-modules/core-java-nio-2 core-java-modules/core-java-security + core-java-modules/core-java-security-2 core-java-modules/core-java-exceptions core-java-modules/core-java-lang-syntax core-java-modules/core-java-lang-syntax-2 @@ -1072,6 +1073,7 @@ core-java-modules/core-java-nio core-java-modules/core-java-nio-2 core-java-modules/core-java-security + core-java-modules/core-java-security-2 core-java-modules/core-java-exceptions core-java-modules/core-java-lang-syntax core-java-modules/core-java-lang-syntax-2 From 8a84fe8389ab09a4974280e17e11b167c8cadee7 Mon Sep 17 00:00:00 2001 From: eelhazati <35301254+eelhazati@users.noreply.github.com> Date: Thu, 12 Mar 2020 19:34:24 +0100 Subject: [PATCH 8/9] Remove tabs --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 512d814488..ef71143e15 100644 --- a/pom.xml +++ b/pom.xml @@ -431,7 +431,7 @@ core-java-modules/core-java-nio core-java-modules/core-java-nio-2 core-java-modules/core-java-security - core-java-modules/core-java-security-2 + core-java-modules/core-java-security-2 core-java-modules/core-java-exceptions core-java-modules/core-java-lang-syntax core-java-modules/core-java-lang-syntax-2 @@ -1073,7 +1073,7 @@ core-java-modules/core-java-nio core-java-modules/core-java-nio-2 core-java-modules/core-java-security - core-java-modules/core-java-security-2 + core-java-modules/core-java-security-2 core-java-modules/core-java-exceptions core-java-modules/core-java-lang-syntax core-java-modules/core-java-lang-syntax-2 From 202eaeda2764c97aeb026916bd802b93ed911b86 Mon Sep 17 00:00:00 2001 From: Eric Martin Date: Fri, 13 Mar 2020 22:29:04 -0500 Subject: [PATCH 9/9] Update pom.xml --- pom.xml | 108 ++------------------------------------------------------ 1 file changed, 2 insertions(+), 106 deletions(-) diff --git a/pom.xml b/pom.xml index b662f35042..6a78faca23 100644 --- a/pom.xml +++ b/pom.xml @@ -391,60 +391,7 @@ core-groovy core-groovy-2 core-groovy-collections - - - - core-java-modules/core-java-8 - core-java-modules/core-java-8-2 - core-java-modules/core-java-annotations - core-java-modules/core-java-streams - core-java-modules/core-java-streams-2 - core-java-modules/core-java-streams-3 - - core-java-modules/core-java-function - core-java-modules/core-java-lang-math - - - core-java-modules/core-java-text - core-java-modules/core-java-lambdas - - - core-java-modules/core-java-arrays - core-java-modules/core-java-arrays-2 - core-java-modules/core-java-collections - core-java-modules/core-java-collections-2 - core-java-modules/core-java-collections-3 - core-java-modules/core-java-collections-list - core-java-modules/core-java-collections-list-2 - core-java-modules/core-java-collections-list-3 - core-java-modules/core-java-collections-array-list - core-java-modules/core-java-collections-set - core-java-modules/core-java-concurrency-basic - core-java-modules/core-java-concurrency-basic-2 - core-java-modules/core-java-concurrency-collections - core-java-modules/core-java-io - core-java-modules/core-java-io-2 - core-java-modules/core-java-io-apis - core-java-modules/core-java-io-conversions - core-java-modules/core-java-nio - core-java-modules/core-java-nio-2 - core-java-modules/core-java-security - core-java-modules/core-java-security-2 - core-java-modules/core-java-exceptions - core-java-modules/core-java-lang-syntax - core-java-modules/core-java-lang-syntax-2 - core-java-modules/core-java-lang - core-java-modules/core-java-lang-2 - core-java-modules/core-java-lang-oop - core-java-modules/core-java-lang-oop-2 - core-java-modules/core-java-lang-oop-3 - core-java-modules/core-java-lang-oop-4 + core-java-modules core-kotlin-modules core-scala @@ -957,58 +904,7 @@ core-groovy core-groovy-2 core-groovy-collections - - - core-java-modules/core-java-8 - core-java-modules/core-java-8-2 - core-java-modules/core-java-annotations - core-java-modules/core-java-streams - core-java-modules/core-java-streams-2 - core-java-modules/core-java-streams-3 - - core-java-modules/core-java-function - core-java-modules/core-java-lang-math - - - core-java-modules/core-java-text - - - core-java-modules/core-java-arrays - core-java-modules/core-java-arrays-2 - core-java-modules/core-java-collections - core-java-modules/core-java-collections-2 - core-java-modules/core-java-collections-3 - core-java-modules/core-java-collections-list - core-java-modules/core-java-collections-list-2 - core-java-modules/core-java-collections-list-3 - core-java-modules/core-java-collections-array-list - core-java-modules/core-java-collections-set - core-java-modules/core-java-concurrency-basic - core-java-modules/core-java-concurrency-basic-2 - core-java-modules/core-java-concurrency-collections - core-java-modules/core-java-io - core-java-modules/core-java-io-2 - core-java-modules/core-java-io-apis - core-java-modules/core-java-io-conversions - core-java-modules/core-java-nio - core-java-modules/core-java-nio-2 - core-java-modules/core-java-security - core-java-modules/core-java-security-2 - core-java-modules/core-java-exceptions - core-java-modules/core-java-lang-syntax - core-java-modules/core-java-lang-syntax-2 - core-java-modules/core-java-lang - core-java-modules/core-java-lang-2 - core-java-modules/core-java-lang-oop - core-java-modules/core-java-lang-oop-2 - core-java-modules/core-java-lang-oop-3 - core-java-modules/core-java-lang-oop-4 + core-java-modules core-kotlin-modules core-scala