TIM开发指导手册.docx
- 文档编号:30727327
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:25
- 大小:828.37KB
TIM开发指导手册.docx
《TIM开发指导手册.docx》由会员分享,可在线阅读,更多相关《TIM开发指导手册.docx(25页珍藏版)》请在冰豆网上搜索。
TIM开发指导手册
TIM开发指导手册
一、对Tim产品的熟知及了解对应目录的数据存储
1、登录访问Tim控制台
Tim安装好以后,并启动Was服务,可登录Tim控制台,访问地址:
[http:
//ipaddress:
port/itim/console/main]
2、管理服务类型(Profile)
ConfigureSystem>ManageServiceTypes
目录数据存储如下图,一个服务类型对应一个ServiceProfile
3、管理服务
ManageServices>SelectaService
目录数据存储如下图
4、管理账号
选择上图中的Service,点击小箭头,选择Accounts,可查看该服务下的帐号列表
对帐号进行相关的操作
目录数据存储如下图
5、管理账号供应策略
ManagePolicies>ManageProvisioningPolicies>ManageProvisioningPolicy
目录数据存储如下图
6、管理人员
ManageUsers>SelectaUser
目录数据存储如下图
7、管理组织
ManageOrganizationStructure
目录数据存储如下图
二、TIM开发环境配置(Tomcat)
基于MyEclipse进行Tim的二次开发时,主要是在IDE环境中里加入Tim相关的配置信息,如登录连接Was安全信息设置,创建、修改帐号时所需的配置文件。
指定开发环境中的JDK、JRE为IBMJava50。
1、修改JDK(IBMJava50)目录下的文件【java.security】
(1)现在从Tim安装目录下下载was登录配置文件【jaas_login_was.conf】
参考下载路径:
[/opt/IBM/itim/extensions/5.1/examples/apps/bin/jaas_login_was.conf]
示例本地存放路径:
[D:
\jaas_login_was.conf]
(2)修改JDK(IBMJava50)目录下的文件【java.security】
示例JDK路径:
[E:
\JavaJDK\IBM\Java50\jre\lib\security\java.security]
编辑此文件修改“login.config.url.1”的值,如下:
#Defaultloginconfigurationfile
#
#login.config.url.1=file:
${user.home}/.java.login.config
login.config.url.1=file:
///D:
/jaas_login_was.conf
2、Tomcat容器下添加连接WAS的JAR包文件
Tomcat所在目录\common\lib下添加2个Jar包【com.ibm.ws.admin.client_6.1.0.jar】、【com.ibm.ws.ejbportable_6.1.0.jar】。
【com.ibm.ws.admin.client_6.1.0.jar】参考下载路径(was安装目录):
[/opt/IBM/WebSphere/AppServer/runtimes/com.ibm.ws.admin.client_6.1.0.jar];
【com.ibm.ws.ejbportable_6.1.0.jar】参考下载路径(was安装目录):
[/opt/IBM/WebSphere/AppServer/plugins/com.ibm.ws.ejbportable_6.1.0.jar];
3、指定JDK路径及Tim相关配置文件引入
(1)指定工程开发JRE为IBMJava50
(2)指定Tomcat容器JDK为IBMJava50,以及引入Tim所依赖的配置文件目录
MyEclipse菜单上Window->Preferences->MyEclipse->Servers->Tomcat5.x下设置如下:
Jdk设置
引入Tim所依赖的配置文件目录,该配置文件从Tim所在服务器下载到本地进行配置,参考路径:
[/opt/IBM/itim/data/]
4、本地Hosts文件配置
在本地Hosts文件[C:
\WINDOWS\system32\drivers\etc\hosts]中配置Tim所在的Was服务器的域名;
如果Was为群集,2台Was服务器域名都要配置。
三、Tim连接服务器编码
1、Tim连接相关配置
工程配置文件[config.properties]中添加如下配置:
#################################################################################
#TIMAPI调用相关配置
#
#iiopUrl:
IIOP协议连接TIM的地址
#contextFactory:
PlatformContextFactoryName
#itimManager:
TIM管理员帐号
#itimManagerPwd:
TIM管理员密码
#supermanager:
was管理员帐号,was没启用安全性时可为空
#supermanagerPwd:
was管理员密码,was没启用安全性时可为空
#################################################################################
iiopUrl=iiop:
//tim51:
2809
contextFactory=com.ibm.itim.apps.impl.websphere.WebSpherePlatformContextFactory
itimManager=itimmanager
itimManagerPwd=passw0rd
supermanager=wasadmin
supermanagerPwd=passw0rd
当Was服务器为群集时,以上iiopUrl的值应配置为集群访问地址,如下:
【iiopUrl=iiop:
//tim51:
2809/cell/clusters/ITIM_Cluster】
该iiopUrl的写法可从tim服务器[/opt/IBM/itim/data/enRole.properties],该配置文件中获取。
2、Tim初始化连接类
packagecom.talkweb.framework.account;
importjava.rmi.RemoteException;
importjava.util.Hashtable;
importjavax.security.auth.Subject;
importjavax.security.auth.login.LoginContext;
importjavax.security.auth.login.LoginException;
importorg.apache.log4j.Logger;
importcom.ibm.itim.apps.ApplicationException;
importcom.ibm.itim.apps.AuthorizationException;
importcom.ibm.itim.apps.InitialPlatformContext;
importcom.ibm.itim.apps.PlatformContext;
importcom.ibm.itim.apps.SchemaViolationException;
importcom.ibm.itim.apps.jaas.callback.PlatformCallbackHandler;
importcom.talkweb.framework.utils.StringTools;
/**
*Tim初始化连接类
*/
publicclassTIMUtil{
privatestaticLoggerlogger=Logger.getLogger(TIMUtil.class);
privatestaticStringappServerURL;//WASiiop服务地址
privatestaticStringplatformContextFactory;//PlatformContextFactoryName
privatestaticStringejbUser;//WAS控制台用户名
privatestaticStringejbPwd;//WAS控制台密码
privatestaticStringitimManagerUser;//TIM控制台用户名
privatestaticStringitimManagerPwd;//TIM控制台密码
privatestaticPlatformContextplatformContext;
privatestaticSubjectsubject;
privatestaticTIMUtil_instance;
publicTIMUtil(){
/*appServerURL="iiop:
//10.2.198.156:
2809";
platformContextFactory="com.ibm.itim.apps.impl.websphere.WebSpherePlatformContextFactory";
ejbUser="";
ejbPwd="";
itimManagerUser="itimmanager";
itimManagerPwd="passw0rd";*/
appServerURL=StringTools.getProperties("iiopUrl");
platformContextFactory=StringTools.getProperties("contextFactory");
ejbUser=StringTools.getProperties("supermanager");
ejbPwd=StringTools.getProperties("supermanagerPwd");
itimManagerUser=StringTools.getProperties("itimManager");
itimManagerPwd=StringTools.getProperties("itimManagerPwd");
}
/**
*getInstance
*/
privatestaticsynchronizedvoidgetInstance(){
if(_instance==null){
try{
_instance=newTIMUtil();
}catch(Exceptione){
e.printStackTrace();
}
}
}
/**
*取得PlatformContext
*@returntheplatformContext
*/
publicstaticPlatformContextgetPlatformContext(){
getInstance();
try{
_instance.initPlatformContext();
}catch(RemoteExceptione){
e.printStackTrace();
}catch(SchemaViolationExceptione){
e.printStackTrace();
}catch(AuthorizationExceptione){
e.printStackTrace();
}catch(ApplicationExceptione){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}
returnplatformContext;
}
/**
*取得Subject
*@returnthesubject
*/
publicstaticSubjectgetSubject(){
getInstance();
try{
_instance.initSubject();
}catch(LoginExceptione){
e.printStackTrace();
}catch(RemoteExceptione){
e.printStackTrace();
}catch(SchemaViolationExceptione){
e.printStackTrace();
}catch(AuthorizationExceptione){
e.printStackTrace();
}catch(ApplicationExceptione){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}
returnsubject;
}
/**
*初始化PlatformContext
*@throwsApplicationException
*@throwsRemoteException
*/
privatevoidinitPlatformContext()throwsApplicationException,RemoteException{
if(platformContext!
=null){
platformContext=null;
}
if(platformContext==null){
Hashtableenv=newHashtable();
env.put(InitialPlatformContext.CONTEXT_FACTORY,platformContextFactory);
env.put(PlatformContext.PLATFORM_URL,appServerURL);
env.put(PlatformContext.PLATFORM_PRINCIPAL,ejbUser);
env.put(PlatformContext.PLATFORM_CREDENTIALS,ejbPwd);
env.put("enrole.appServer.usertransaction.jndiname","jta/usertransaction");//was群集时要用此参数
platformContext=newInitialPlatformContext(env);
logger.info("PlatformContext创建成功!
");
}
}
/**
*初始化Subject
*@throwsApplicationException
*@throwsRemoteException
*@throwsLoginException
*/
privatevoidinitSubject()throwsApplicationException,RemoteException,
LoginException{
if(subject!
=null){
subject=null;
}
if(subject==null){
PlatformCallbackHandlerhandler=newPlatformCallbackHandler(itimManagerUser,itimManagerPwd);
handler.setPlatformContext(platformContext);
LoginContextlc=newLoginContext("ITIM",handler);
lc.login();
subject=lc.getSubject();
}
}
}
四、常用TIMAPI介绍
1、帐号操作时Import类
importcom.ibm.itim.apps.ApplicationException;
importcom.ibm.itim.apps.PlatformContext;
importcom.ibm.itim.apps.Request;
importcom.ibm.itim.apps.identity.PersonMO;
importcom.ibm.itim.apps.provisioning.AccountMO;
importcom.ibm.itim.apps.provisioning.AccountManager;
importcom.ibm.itim.apps.provisioning.ServiceMO;
importcom.ibm.itim.apps.search.SearchMO;
importmon.AttributeValue;
importmon.AttributeValues;
importcom.ibm.itim.dataservices.model.CompoundDN;
importcom.ibm.itim.dataservices.model.DistinguishedName;
importcom.ibm.itim.dataservices.model.ObjectProfileCategory;
importcom.ibm.itim.dataservices.model.domain.Account;
importcom.ibm.itim.dataservices.model.domain.Service;
importcom.ibm.itim.dataservices.model.domain.Person;
importcom.ibm.itim.dataservices.model.domain.PersonEntity;
importcom.ibm.itim.dataservices.model.domain.ServiceEntity;
importcom.ibm.itim.policy.analysis.PPAException;
importcom.ibm.itim.policy.analysis.PPAProvisioningParameter;
importcom.ibm.itim.policy.analysis.ProvisioningPolicyAnalysis;
2、查询服务Service
/**
*根据过滤条件查找服务(Tim中Service)
*@parambaseDn查找范围节点
*@paramfilter过滤条件
*@returnCollection里存放对象为【com.ibm.itim.dataservices.model.domain.Service】
*@throwsException
*/
publicCollection
Collection
SearchMOsearchMO=newSearchMO(TIMUtil.getPlatformContext(),TIMUtil.getSubject());
searchMO.setCategory(ObjectProfileCategory.SERVICE);
searchMO.setProfileName(ObjectProfileCategory.SERVICE);
searchMO.setContext(newCompoundDN(newDistinguishedName(baseDn)));
searchMO.setFilter(filter);
services=searchMO.execute().getResults();
returnservices;
}
3、查询帐号Account
/**
*根据过滤条件查找帐号(Tim中帐号)
*@parambaseDn查找范围节点
*@paramfilter过滤条件
*@returnCollection里存放对象为【com.ibm.itim.dataservices.model.domain.Account】
*/
publicCollection
Collection
SearchMOsearchMO=newSearchMO(TIMUtil.getPlatformContext(),TIMUtil.getSubject());
searchMO.setCategory(ObjectProfileCategory.ACCOUNT);
searchMO.setProfileName(ObjectProfileCategory.ACCOUNT);
searchMO.setContext(newCompoundDN(newDistinguishedName(baseDn)));
searchMO.setFilter(filter);
accounts=searchMO.execute().getResults();
returnaccounts;
}
4、查询人员Person
/**
*根据过滤条件查找人员(Tim中Person对象)
*@parambaseDn查找范围节点
*@paramfilter过滤条件
*@returnCollection里存放对象为【com.ibm.itim.dataservices.model.domain.Person】
*@throwsEx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TIM 开发 指导 手册
![提示](https://static.bdocx.com/images/bang_tan.gif)