我正在使用IBM Worklight開發移動應用程序,並且我在身份驗證過程中遇到了一些問題。我正在使用自定義身份驗證程序和自定義登錄模塊來針對Tivoli目錄服務器驗證用戶憑據。無法在IBM Worklight中使用LDAP身份驗證進行身份驗證
這是我正在使用的代碼,它在Worklight Studio中像java應用程序(具有主方法的類)運行時運行,但是當我像Worklight應用程序一樣運行它時(在我的自定義的登錄函數中登錄模塊),它返回一個命名異常並打印jndi.20
public boolean login(Map<String, Object> authenticationData) {
logger.info("SmaciLoginModule :: login");
try{
USERNAME = (String) authenticationData.get("username");
PASSWORD = (String) authenticationData.get("password");
String solicuser="uid="+USERNAME+",cn=users,dc=smaci,dc=ibm";
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://127.0.0.1:1389/");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, solicuser);
env.put(Context.SECURITY_CREDENTIALS, PASSWORD);
DirContext ctx = new InitialDirContext(env);
boolean result = ctx != null;
if(ctx != null)
ctx.close();
return result;
}catch (Exception e) {
throw new RuntimeException("Invalid credentials"+e.getMessage());
}
}
我希望你能幫助我與我的問題。我沒有使用LDAP的經驗,我很欣賞任何建議。 謝謝!
謝謝你的回答!當我在Worklight Studio中像Java應用程序(具有main方法的類)運行代碼時,我更改了代碼,但是當它像Worklight應用程序(在我的自定義登錄模塊的登錄函數中)運行時,它會打印相同的錯誤(jndi.20)。 – user2171359 2013-03-15 20:09:16