1 17 18 package org.apache.geronimo.security.realm.providers; 19 20 import java.util.Map ; 21 import javax.security.auth.Subject ; 22 import javax.security.auth.callback.Callback ; 23 import javax.security.auth.callback.CallbackHandler ; 24 import javax.security.auth.callback.NameCallback ; 25 import javax.security.auth.callback.PasswordCallback ; 26 import javax.security.auth.callback.UnsupportedCallbackException ; 27 import javax.security.auth.login.LoginException ; 28 import javax.security.auth.spi.LoginModule ; 29 30 31 34 public class GeronimoPasswordCredentialLoginModule implements LoginModule { 35 36 private Subject subject; 37 private CallbackHandler callbackHandler; 38 39 private GeronimoPasswordCredential geronimoPasswordCredential; 40 41 public void initialize(Subject subject, CallbackHandler callbackHandler, 42 Map sharedState, Map options) { 43 this.subject = subject; 44 this.callbackHandler = callbackHandler; 45 } 46 47 public boolean login() throws LoginException { 48 Callback [] callbacks = new Callback [2]; 49 callbacks[0] = new NameCallback (""); 50 callbacks[1] = new PasswordCallback ("", false); 51 try { 52 callbackHandler.handle(callbacks); 53 } catch (java.io.IOException e) { 54 } catch (UnsupportedCallbackException e) { 55 throw (LoginException ) new LoginException ("Unlikely UnsupportedCallbackException").initCause(e); 56 } 57 geronimoPasswordCredential = new GeronimoPasswordCredential(((NameCallback ) callbacks[0]).getName(), 58 ((PasswordCallback ) callbacks[1]).getPassword()); 59 return true; 60 } 61 62 public boolean commit() throws LoginException { 63 subject.getPrivateCredentials().add(geronimoPasswordCredential); 64 return true; 65 } 66 67 public boolean abort() throws LoginException { 68 geronimoPasswordCredential = null; 69 return true; 70 } 71 72 public boolean logout() throws LoginException { 73 geronimoPasswordCredential = null; 74 return true; 75 } 76 } 77 | Popular Tags |