3 import java.util.Hashtable;
4 import javax.security.auth.callback.*;
6 class ServerFactory implements SaslServerFactory
8 private int localptr = 0;
11 private native int jni_sasl_server_init(String appname);
12 private native int jni_sasl_server_new(String service,
17 public ServerFactory()
19 /* these parameters aren't needed for getting mech list */
20 localptr = jni_sasl_server_new("foo", "bar", 0);
23 private boolean init(String appname)
27 System.loadLibrary("javasasl");
28 } catch (UnsatisfiedLinkError e) {
30 System.out.println("Unable to load javasasl library");
33 jni_sasl_server_init(appname);
39 init("javasasl application");
42 public SaslServer createSaslServer(String mechanism,
46 javax.security.auth.callback.CallbackHandler cbh)
51 cptr = jni_sasl_server_new(protocol,
56 throw new SaslException("Unable to create new Client connection object",
60 return new GenericServer(cptr,mechanism,props,cbh);
63 private native String jni_sasl_server_getlist(int ptr, String prefix,
64 String sep, String suffix);
66 public String[] getMechanismNames()
69 localptr = jni_sasl_server_new("foo",
73 String list = jni_sasl_server_getlist(localptr, "",
80 while (pos < list.length()) {
81 if (list.charAt(pos)=='\n')
86 String[]ret = new String[newlines];
92 while (pos < list.length()) {
93 if (list.charAt(pos)=='\n') {
97 temp+=list.charAt(pos);