KARAF-2775 Use AccessControlContext to log into web shell
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/85894503 Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/85894503 Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/85894503 Branch: refs/heads/karaf-3.0.x Commit: 85894503a7310d49b52a0df8929f857c46dcfac9 Parents: 4d7f393 Author: Christian Schneider <[email protected]> Authored: Fri Feb 21 15:55:40 2014 +0100 Committer: Jean-Baptiste Onofré <[email protected]> Committed: Fri Feb 21 19:18:47 2014 +0100 ---------------------------------------------------------------------- .../java/org/apache/karaf/webconsole/gogo/GogoPlugin.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/85894503/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java ---------------------------------------------------------------------- diff --git a/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java b/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java index ed6a26d..077c31b 100644 --- a/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java +++ b/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java @@ -31,6 +31,8 @@ import java.io.PipedOutputStream; import java.io.PrintStream; import java.io.PrintWriter; import java.net.URL; +import java.security.AccessControlContext; +import java.security.AccessController; import java.util.zip.GZIPOutputStream; import javax.security.auth.Subject; @@ -40,7 +42,6 @@ import javax.servlet.http.HttpServletResponse; import org.apache.felix.service.command.CommandProcessor; import org.apache.felix.service.threadio.ThreadIO; -import org.apache.karaf.jaas.boot.principal.UserPrincipal; import org.apache.karaf.shell.console.Console; import org.apache.karaf.shell.console.ConsoleFactory; import org.apache.felix.webconsole.AbstractWebConsolePlugin; @@ -195,8 +196,9 @@ public class GogoPlugin extends AbstractWebConsolePlugin { out = new PipedInputStream(); PrintStream pipedOut = new PrintStream(new PipedOutputStream(out), true); - final Subject subject = new Subject(); - subject.getPrincipals().add(new UserPrincipal("karaf")); + AccessControlContext acc = AccessController.getContext(); + final Subject subject = Subject.getSubject(acc); + Console console = consoleFactory.create(commandProcessor, threadIO, new PipedInputStream(in),
