Repository: karaf Updated Branches: refs/heads/karaf-3.0.x f96a4982c -> 805a3db98
[KARAF-3269]ssh into karaf as user with no roles throws exception and user shell stays frozen (cherry picked from commit fb7f0ddc0f1e34142135173ca013dfd84435bb51) Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/805a3db9 Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/805a3db9 Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/805a3db9 Branch: refs/heads/karaf-3.0.x Commit: 805a3db98ec6a14a6e8567605823f1fc8fd1b9d5 Parents: f96a498 Author: Freeman Fang <[email protected]> Authored: Sat Oct 11 12:10:41 2014 +0800 Committer: Freeman Fang <[email protected]> Committed: Sat Oct 11 12:11:40 2014 +0800 ---------------------------------------------------------------------- .../java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java | 9 +++++++++ 1 file changed, 9 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/805a3db9/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java ---------------------------------------------------------------------- diff --git a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java index 4b33699..c9a3dff 100644 --- a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java +++ b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java @@ -143,6 +143,15 @@ public class ShellFactoryImpl implements Factory<Command> { console.run(); } catch (Exception e) { LOGGER.warn("Unable to start shell", e); + //close the session to notify the ssh client if something wrong + //during starting shell + try { + out.write(("unable to start shell because " + e.getMessage() + "\n").getBytes()); + out.flush(); + } catch (IOException e1) { + LOGGER.warn("Unable to send back error message", e1); + } + ShellImpl.this.session.close(true); } } }.start();
