token expire time
This commit is contained in:
@@ -99,6 +99,7 @@ public final class BrokerConstants {
|
||||
|
||||
public static final String CLIENT_PROTO_SECRET_KEY = "client.proto.secret_key";
|
||||
public static final String TOKEN_SECRET_KEY = "token.key";
|
||||
public static final String TOKEN_EXPIRE_TIME = "token.expire_time";
|
||||
|
||||
public static final String EMBED_DB_PROPERTY_NAME = "embed.db";
|
||||
|
||||
|
||||
@@ -35,11 +35,13 @@ import io.moquette.spi.IStore;
|
||||
import io.moquette.spi.impl.ProtocolProcessor;
|
||||
import io.moquette.spi.impl.ProtocolProcessorBootstrapper;
|
||||
import io.moquette.spi.impl.security.AES;
|
||||
import io.moquette.spi.impl.subscriptions.Token;
|
||||
import io.moquette.spi.security.IAuthenticator;
|
||||
import io.moquette.spi.security.IAuthorizator;
|
||||
import io.moquette.spi.security.ISslContextCreator;
|
||||
import io.moquette.spi.security.Tokenor;
|
||||
import io.netty.util.ResourceLeakDetector;
|
||||
import io.netty.util.internal.StringUtil;
|
||||
import win.liyufan.im.DBUtil;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
@@ -387,6 +389,14 @@ public class Server {
|
||||
hazelcastInstance.getCluster().getLocalMember().setIntAttribute(HZ_Cluster_Node_ID, nodeId);
|
||||
hazelcastInstance.getCluster().getLocalMember().setStringAttribute(HZ_Cluster_Node_External_IP, serverIp);
|
||||
Tokenor.setKey(config.getProperty(BrokerConstants.TOKEN_SECRET_KEY));
|
||||
String expirTimeStr = config.getProperty(TOKEN_EXPIRE_TIME);
|
||||
if (!StringUtil.isNullOrEmpty(expirTimeStr)) {
|
||||
try {
|
||||
Tokenor.setExpiredTime(Long.parseLong(expirTimeStr));
|
||||
} catch (NumberFormatException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
RPCCenter.getInstance().init(this);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import io.moquette.spi.impl.security.AES;
|
||||
|
||||
public class Tokenor {
|
||||
private static String KEY = "testim";
|
||||
private static long expiredTime = Long.MAX_VALUE;
|
||||
|
||||
public static void setKey(String key) {
|
||||
if (!StringUtil.isNullOrEmpty(key)) {
|
||||
@@ -13,6 +14,10 @@ public class Tokenor {
|
||||
}
|
||||
}
|
||||
|
||||
public static void setExpiredTime(long expiredTime) {
|
||||
Tokenor.expiredTime = expiredTime;
|
||||
}
|
||||
|
||||
public static String getUserId(byte[] password) {
|
||||
try {
|
||||
String signKey =
|
||||
@@ -21,8 +26,8 @@ public class Tokenor {
|
||||
if (signKey.startsWith(KEY + "|")) {
|
||||
signKey = signKey.substring(KEY.length() + 1);
|
||||
long timestamp = Long.parseLong(signKey.substring(0, signKey.indexOf('|')));
|
||||
if (System.currentTimeMillis() - timestamp > 7 * 24 * 60 *60 *1000) {
|
||||
//return false;
|
||||
if (expiredTime > 0 && System.currentTimeMillis() - timestamp > expiredTime) {
|
||||
return null;
|
||||
}
|
||||
String id = signKey.substring(signKey.indexOf('|') + 1);
|
||||
return id;
|
||||
|
||||
Reference in New Issue
Block a user