一、连接TIM的配置
1, 修改JDK(IBM Java60)目录下的文件【java.security】
2, 现在从Tim安装目录下下载was登录配置文件【jaas_login_was.conf】
3, 参考下载路径:[/opt/IBM/itim/extensions/5.1/examples/apps/bin/jaas_login_was.conf]
示例本地存放路径:[D:\jaas_login_was.conf]
4,修改JDK(IBM Java50)目录下的文件【java.security】
示例JDK路径:[E:\JavaJDK\IBM\Java50\jre\lib\security\java.security]
编辑此文件修改“login.config.url.1”的值,如下:
# Default login configuration file # #login.config.url.1=file:${user.home}/.java.login.config login.config.url.1=file:///D:/jaas_login_was.conf |
二、开发环境
1, 开发工具: eclipse
2, JDK: ibm jdk 6.0
3, 所需JAR包 activation.jar,api_ejb.jar,com.ibm.ws.admin.client_6.1.0.jar,com.ibm.ws.ejbportable_6.1.0.jar,itim_api.jar,itim_common.jar,itim_server.jar,itim_server_api.jar,javamail-crypto-bouncycastle-smime.jar,jlog.jar
三、开发前提
1, 确认was,tim 及所需的ldap,db2的实例和Adapter-Dispatcher都已成功启动。
2, 首先在tim web下进行创建人,创建账号等操作,确认成功。
四、使用代码
1,连接代码
public class ItimUtil { private static final String LOGIN_CONTEXT = "ITIM"; public static final String DEFAULT_ORG_ID = "erglobalid=00000000000000000000";
private String contextFactory; private String platformUrl; //连接地址 private String itimUser; //tim用户名 private String itimPwd; //tim 密码 private String ejbUser; // was 用户名 private String ejbPwd; // was 密码
//创建 platformContext public PlatformContext getPlatformContext() throws RemoteException, ApplicationException {
Hashtable<String, String> env = new Hashtable<String, String>(); env.put(InitialPlatformContext.CONTEXT_FACTORY, contextFactory); env.put(PlatformContext.PLATFORM_URL, platformUrl); env.put(PlatformContext.PLATFORM_PRINCIPAL, ejbUser); env.put(PlatformContext.PLATFORM_CREDENTIALS, ejbPwd); env.put("enrole.appServer.usertransaction.jndiname", "jta/usertransaction"); //was群集时要用此参数 return new InitialPlatformContext(env); } //获得 subject public Subject getSubject(PlatformContext platform) throws LoginException { PlatformCallbackHandler handler = new PlatformCallbackHandler(itimUser, itimPwd); handler.setPlatformContext(platform);
LoginContext lc = new LoginContext(LOGIN_CONTEXT, handler); lc.login(); return lc.getSubject(); } } |