JBoss.org Community Documentation
The ClientLoginModule
is an implementation of LoginModule
for use by JBoss clients for the establishment of the caller identity and credentials. This simply sets the org.jboss.security.SecurityAssociation.principal
to the value of the NameCallback
filled in by the callbackhandler
, and the org.jboss.security.SecurityAssociation.credential
to the value of the PasswordCallback
filled in by the callbackhandler
. This is the only supported mechanism for a client to establish the current thread's caller. Both stand-alone client applications and server environments, acting as JBoss EJB clients where the security environment has not been configured to use JBossSX transparently, need to use the ClientLoginModule
. Of course, you could always set the org.jboss.security.SecurityAssociation
information directly, but this is considered an internal API that is subject to change without notice.
Note that this login module does not perform any authentication. It merely copies the login information provided to it into the JBoss server EJB invocation layer for subsequent authentication on the server. If you need to perform client-side authentication of users you would need to configure another login module in addition to the ClientLoginModule
.
The supported login module configuration options include the following:
multi-threaded : When the multi-threaded option is set to true, each login thread has its own principal and credential storage. This is useful in client environments where multiple user identities are active in separate threads. When true, each separate thread must perform its own login. When set to false the login identity and credentials are global variables that apply to all threads in the VM. The default for this option is false.
password-stacking
: When password-stacking
option is set to useFirstPass
, this module first looks for a shared username and password using javax.security.auth.login.name
and javax.security.auth.login.password
respectively in the login module shared state map. This allows a module configured prior to this one to establish a valid username and password that should be passed to JBoss. You would use this option if you want to perform client-side authentication of clients using some other login module such as the LdapLoginModule
.
restore-login-identity
: When restore-login-identity
is true, the SecurityAssociation
principal and credential seen on entry to the login()
method are saved and restored on either abort or logout. When false (the default), the abort and logout simply clear the SecurityAssociation
. A restore-login-identity
of true is needed if one need to change identities and then restore the original caller identity.
A sample login configuration for ClientLoginModule
is the default configuration entry found in the JBoss distribution client/auth.conf
file. The configuration is:
other { // Put your login modules that work without jBoss here // jBoss LoginModule org.jboss.security.ClientLoginModule required; // Put your login modules that need jBoss here };