下载源代码:
git clone https://repository.tigase.org/git/tigase-server.git
环境配置:
a) mysql 安装
b) jdk1.7.0安装
c) 参考之前的文档,配置数据库,http://my.oschina.net/leegq/blog/226378
d) 安装maven
启动数据库
导入源代码到Intellij IDEA.
pom.xml里面 maven-javadoc-plugin这个在编译的时候,会出错,我直接删掉了。
使用Intellij中得maven进行编译。编译通过。
Intellij调试配置,
在运行配置里面 修改这几项
Main Class : tigase.server.XMPPServer
Vm Options: -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Djdbc.drivers=com.mysql.jdbc.Driver:org.postgresql.Driver:org.apache.derby.jdbc.EmbeddedDriver -Djava.ext.dirs=/Users/你自己的用户名/xos/dev2/tigase/test/tigase-server/jars
Program arguments: --property-file etc/init.properties
Working directory:/Users/你自己的用户名/xos/dev2/tigase/test/tigase-server
入口tigase.server.XMPPServer.java
与第三方用户系统集成。
App登陆XMPP服务,需要进行用户认证,而用户认证处理是在TigaseCustomAuth.java 中 otherAuth方法中处理。
而需要和第三方用户系统集成,需要修改此方法(我暂时的处理方式是这样的)。
//1.通过uid,token, 发送请求到用户中心,认证用户
//2.认证通过返回用户名和密码,在XMPP Server上认证用户(如果没有此用户,就创建用户,如果有了,就继续进行XMPP的用户认证,直到认证完成,返回客户端,表示登录成功)。
代码片段如下:
if (proto.equals(PROTOCOL_VAL_NONSASL)) {
String password = (String) props.get(PASSWORD_KEY);
BareJID user_id = (BareJID) props.get(USER_ID_KEY);
if (password != null) {
//return plainAuth(user_id, password);
boolean isSuccess = false;
try {
isSuccess = plainAuth(user_id, password);
}
catch (UserNotFoundException e) {
addUser(user_id, password);
}
finally {
if (isSuccess == false) {
isSuccess = plainAuth(user_id, password);
}
}
return isSuccess;
}
9. 编译打包。
a) 修改modules/master/pom.xml ,删除maven-javadoc-plugin.编译会出错。
b) 安装必须工具,
git, python2, docutils and LaTeX ,ant
LaTeX这个工具可以使用yum install texlive*安装。
c) 执行mvn -Pdist -f modules/master/pom.xml clean install
jars/目录下面,生成了依赖的jar包, pack/ 目录下面 tigase-server-5.2.1-b-dist-max.tar.gz和tigase-server-5.2.1-b-dist.tar.gz,(一个多功能版本,一个是简版)。
d) 执行
./scripts/installer-prepare.sh |
./scripts/installer-generate.sh |
成功执行之后,pack/目录下面,有个tigase-server-5.2.1-b.jar,这个就是最后的安装包了。
可以参考http://fshuanglan.blog.51cto.com/133806/1369802,来进行安装。