NoInputCallbackHandler.java

00001 
00027 package org.objectweb.jonas.security.auth.callback;
00028 
00029 import java.io.IOException;
00030 import javax.security.auth.callback.CallbackHandler;
00031 import javax.security.auth.callback.UnsupportedCallbackException;
00032 import javax.security.auth.callback.NameCallback;
00033 import javax.security.auth.callback.PasswordCallback;
00034 import javax.security.auth.callback.Callback;
00035 import java.security.cert.Certificate;
00036 
00044 public class NoInputCallbackHandler implements CallbackHandler {
00045 
00049     private String username = null;
00050 
00054     private String password = null;
00055 
00059     private Certificate cert = null;
00060 
00065     public NoInputCallbackHandler() throws Exception {
00066         throw new Exception(
00067                 "This class could only be used with the constructor NoInputCallbackHandler(String username, String password)");
00068     }
00069 
00075     public NoInputCallbackHandler(String username, String password) {
00076         this.username = username;
00077         this.password = password;
00078     }
00079 
00086     public NoInputCallbackHandler(String username, String password, Certificate cert) {
00087         this(username, password);
00088         this.cert = cert;
00089     }
00090 
00101     public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
00102 
00103         for (int i = 0; i < callbacks.length; i++) {
00104             if (callbacks[i] instanceof NameCallback) {
00105                 // set the username to the username given in the constructor
00106                 NameCallback nc = (NameCallback) callbacks[i];
00107                 nc.setName(username);
00108             } else if (callbacks[i] instanceof PasswordCallback) {
00109                 // set the password to the password given in the constructor
00110                 PasswordCallback pc = (PasswordCallback) callbacks[i];
00111                 pc.setPassword(password.toCharArray());
00112             } else if (callbacks[i] instanceof CertificateCallback) {
00113                 CertificateCallback cc = (CertificateCallback) callbacks[i];
00114                 cc.setUserCertificate(cert);
00115             } else {
00116                 throw new UnsupportedCallbackException(callbacks[i], "Unrecognized Callback");
00117             }
00118         }
00119     }
00120 }

Generated on Tue Feb 15 15:05:21 2005 for JOnAS by  doxygen 1.3.9.1