JBoss EAP 6 Datasource security domain - locks DB userid during restart -


for datasource created in jboss eap 6, security domain specified authentication. when server restarted database id getting locked, database used sybase. issue not happen once in while. below given code of login module. can help? thanks.

public class datasourceloginmodule extends abstractpasswordcredentialloginmodule {

private string username; private string password; private final string key = "key";  @override public void initialize(subject subject, callbackhandler handler, map<string, ?> sharedstate, map<string, ?> options) {     super.initialize(subject, handler, sharedstate, options);      logger.getlogger(this.getclass().getname()).log(level.info, "[password encrypter] initializing.");       username = (string) options.get("username");     if (username == null)     {         // nr : try username         username = (string) options.get("username");         if (username == null)         {             throw new illegalargumentexception("username null");         }     }     password = (string) options.get("password");     if (password == null)     {         logger.getlogger(this.getclass().getname()).log(level.severe, "[password encrypter] initialization error!!!");         throw new illegalargumentexception("password null");     }      logger.getlogger(this.getclass().getname()).log(level.info, "[password encrypter] initialized."); }  @override public boolean login()         throws loginexception {     logger.getlogger(this.getclass().getname()).log(level.info, "[password encrypter] logging in.");      if (super.login())     {         logger.getlogger(this.getclass().getname()).log(level.info, "[password encrypter] super logged in.");         return true;     }      super.loginok = true;      logger.getlogger(this.getclass().getname()).log(level.info, "[password encrypter] logged in.");     return true; }  @override public boolean commit()         throws loginexception {     logger.getlogger(this.getclass().getname()).log(level.info, "[password encrypter] commiting.");      principal principal = new simpleprincipal(username);     subjectactions.addprincipals(subject, principal);     sharedstate.put("javax.security.auth.login.name", username);     // decode encrypted password             try     {         logger.getlogger(this.getclass().getname()).log(level.info, "[password encrypter] decoding password.");         char[] decodedpassword = decrypt.decryptpassword(password, key).tochararray();         logger.getlogger(this.getclass().getname()).log(level.info, "[password encrypter] decoded password.");          passwordcredential cred = new passwordcredential(username, decodedpassword);         subjectactions.addcredentials(subject, cred);     }     catch (exception e)     {         logger.getlogger(this.getclass().getname()).log(level.severe, "[password encrypter] commit error!!!");         loginexception le = new loginexception(e.getlocalizedmessage());         le.initcause(e);         throw le;     }      logger.getlogger(this.getclass().getname()).log(level.info, "[password encrypter] commited.");     return true; }  @override public boolean abort() {     logger.getlogger(this.getclass().getname()).log(level.info, "[password encrypter] aborted.");     username = null;     password = null;     return true; }  @override protected principal getidentity() {     principal principal = new simpleprincipal(username);     return principal; }  @override protected group[] getrolesets()         throws loginexception {     return new group[]     {     }; } 

}


Comments

Popular posts from this blog

resizing Telegram inline keyboard -

command line - How can a Python program background itself? -

php - "cURL error 28: Resolving timed out" on Wordpress on Azure App Service on Linux -