I was working on getting support to connect to remote servers for the
JBoss AS 7 plugin. The management API's require a
javax.security.auth.callback.CallbackHandler. I originally had an
implementation that would prompt for the username and password to be
entered. The issue is that the ShellImpl locks on execution [1] with the
same lock on the promptWithCompleter [2]. This causes the prompt on the
CallbackHandler implementation to dead-lock.
The workaround I've found is the promptSecret [3] does not seem to
block. There are other potential ways around this, but they generally
require the user to authenticate on each execution which is not really
desirable.
This leads to a few questions:
1. Should the promptSecret be blocking too?
2. Is there a better approach to getting the credentials?
3. Should the promptWithCompleter be blocking? (I haven't really looked
at the code enough to determine this)
[1]:
https://github.com/forge/core/blob/master/shell/src/main/java/org/jboss/f...
[2]:
https://github.com/forge/core/blob/master/shell/src/main/java/org/jboss/f...
[3]:
https://github.com/forge/core/blob/master/shell/src/main/java/org/jboss/f...
--
James R. Perkins
JBoss by Red Hat