maven依赖
<dependency>
<groupId>org.igniterealtime</groupId>
<artifactId>rest-api-client</artifactId>
<version>1.1.4</version>
</dependency>
增删查改例子,其中AuthenticationToken的值是通过openfire管理界面进行设置的。
package com.nufront.openfire.client.userapi;
import org.igniterealtime.restclient.RestApiClient;
import org.igniterealtime.restclient.entity.AuthenticationToken;
import org.igniterealtime.restclient.entity.UserEntities;
import org.igniterealtime.restclient.entity.UserEntity;
import javax.ws.rs.core.Response;
/**
* @author kangming.ning
* @date 2020/10/15 16:25
*/
public class UserTest {
public static void main(String[] args) {
AuthenticationToken authenticationToken = new AuthenticationToken("kT5fRkVtdtawYQ7r");
RestApiClient restApiClient = new RestApiClient("http://www.test.com", 9090, authenticationToken);
//创建用户
//createUser(restApiClient,"testss","testname","ningkangming@126.com","nufront");
//更新用户
// updateByUserName(restApiClient,"testss","edit tesss","ningkangming@126.com","nufront1");
//获取用户
// UserEntity testss = getUserByUserName(restApiClient,"testss");
//System.out.println(testss);
//获取所有用户
/* UserEntities users = getUsers(restApiClient);
List<UserEntity> userList = users.getUsers();
for (UserEntity userEntity : userList) {
System.out.println(userEntity);
}*/
//删除一个用户
//deleteByUserName(restApiClient, "testss");
}
public static boolean createUser(RestApiClient restApiClient,String username, String name, String email, String password) {
boolean createSuccess = false;
UserEntity userEntity = new UserEntity(username, name, email, password);
Response response = restApiClient.createUser(userEntity);
if(response.getStatus() == Response.Status.CREATED.getStatusCode()) createSuccess = true;
return createSuccess;
}
public static boolean updateByUserName(RestApiClient restApiClient,String username, String name, String email, String password) {
boolean updateSuccess = false;
UserEntity userEntity = getUserByUserName(restApiClient, username);
if(userEntity != null) {
userEntity.setName(name);
userEntity.setEmail(email);
userEntity.setPassword(password);
Response response = restApiClient.updateUser(userEntity);
if(response.getStatus() == Response.Status.OK.getStatusCode()) updateSuccess = true;
}
return updateSuccess;
}
public static UserEntity getUserByUserName(RestApiClient restApiClient,String userName) {
UserEntity userEntity = null;
userEntity = restApiClient.getUser(userName);
return userEntity;
}
public static UserEntities getUsers(RestApiClient restApiClient) {
UserEntities userEntities = restApiClient.getUsers();
return userEntities;
}
public static boolean deleteByUserName(RestApiClient restApiClient,String userName) {
boolean deleteSuccess = false;
UserEntity userEntity = getUserByUserName(restApiClient, userName);
if(userEntity != null) {
Response response = restApiClient.deleteUser(userName);
if(response.getStatus() == Response.Status.OK.getStatusCode()) deleteSuccess = true;
}
return deleteSuccess;
}
}
以上简单的介绍了如何利用rest api操作openfire用户信息,除此之外,RestApiClient
还有创建群聊、管理房间成员、管理group等功能,具体参看RestApiClient
api接口以及接口文档:http://www.test.com:9090/plugin-showfile.jsp?plugin=restapi&showReadme=true&decorator=none