Java WebSphere 7:WSCallbackHandlerImpl+InitialContext
使用WSCallbackHandlerImpl执行编程登录时,如果没有将java.naming.provider.url设置为系统属性或jndi.properties文件,则需要调用:Java WebSphere 7:WSCallbackHandlerImpl+InitialContext,java,websphere,jndi,jaas,Java,Websphere,Jndi,Jaas,使用WSCallbackHandlerImpl执行编程登录时,如果没有将java.naming.provider.url设置为系统属性或jndi.properties文件,则需要调用: Object obj = initialContext.lookup(""); 在执行登录之前 之后,以下代码起作用: LoginContext lc = null; try { lc = new LoginContext("WSLogin", new WSCallbackHan
Object obj = initialContext.lookup("");
在执行登录之前
之后,以下代码起作用:
LoginContext lc = null;
try {
lc = new LoginContext("WSLogin",
new WSCallbackHandlerImpl("userName", "realm", "password"));
} catch (LoginException le) {
System.out.println("Cannot create LoginContext. " + le.getMessage());
// insert error processing code
} catch(SecurityException se) {
System.out.printlin("Cannot create LoginContext." + se.getMessage();
// Insert error processing
}
见:
obj和initialContext都不会传递给WSCallbackHandlerImpl或LoginContext
根据Javadoc,返回上下文的新实例
问题:
为什么在这种情况下需要空字符串查找?
WSCallbackHandlerImpl如何获取服务器URL?
这是特定于WebSphere的吗?
如果不提供查找,是否有任何错误?您需要什么,因为可能有更好的解决方案以这种方式使用LoginModule。如该教程中所述,如果省略查找,则将使用默认URL localhost:2809,授权失败。我在WAS 8.5的servlet中使用了该代码,它在没有任何空查找的情况下运行良好,属性也不是系统属性,我的默认端口是2810而不是2809。这就是为什么我要问你想做什么以及异常堆栈跟踪是什么。