![JAR search and dependency download from the Maven repository](/logo.png)
com.avos.avoscloud.AVUserSignatureFactory Maven / Gradle / Ivy
The newest version!
package com.avos.avoscloud;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by wli on 2017/7/28.
*/
public class AVUserSignatureFactory implements SignatureFactory {
private static final String RTM_SIGN_ENDPOINT = "rtm/sign";
private String sessionToken;
public AVUserSignatureFactory(String sessionToken) {
this.sessionToken = sessionToken;
}
public Signature createSignature(String peerId, List watchIds) throws SignatureException {
final StringBuffer stringBuffer = new StringBuffer();
Map data = new HashMap();
data.put("session_token", sessionToken);
PaasClient.storageInstance().postObject(RTM_SIGN_ENDPOINT, JSON.toJSONString(data), true, false,
new GenericObjectCallback() {
@Override
public void onSuccess(String content, AVException e) {
if (e != null) {
AVExceptionHolder.add(new SignatureException(SignatureFactory.SIGNATURE_FAILED_LOGIN,
"failed to create signature. cause:" + e.getMessage()));
} else {
stringBuffer.append(content);
}
}
@Override
public void onFailure(Throwable error, String content) {
AVExceptionHolder.add(new SignatureException(SignatureFactory.SIGNATURE_FAILED_LOGIN, content));
}
}, null, null);
if (AVExceptionHolder.exists()) {
throw (SignatureException)AVExceptionHolder.remove();
}
return parseSiparseSignaturegnature(stringBuffer.toString());
}
public Signature createGroupSignature(String groupId, String peerId, List targetPeerIds,
String action) throws SignatureException {
return null;
}
public Signature createConversationSignature(String conversationId, String clientId,
List targetIds, String action) throws SignatureException {
return null;
}
public Signature createBlacklistSignature(String clientId, String conversationId, List memberIds,
String action) throws SignatureException {
return null;
}
private Signature parseSiparseSignaturegnature(String content) throws SignatureException {
if (AVUtils.isBlankString(content)) {
throw new SignatureException(SignatureFactory.SIGNATURE_FAILED_LOGIN, "singnature is empty");
}
Signature signature = new Signature();
try {
JSONObject jsonObject = JSON.parseObject(content);
signature.setNonce(jsonObject.getString("nonce"));
signature.setSignature(jsonObject.getString("signature"));
signature.setTimestamp(jsonObject.getLong("timestamp"));
} catch (Exception e) {
throw new SignatureException(SignatureFactory.SIGNATURE_FAILED_LOGIN, "singnature content parse error: " + content);
}
return signature;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy