/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.core.sso;
import com.jinhe.tss.core.util.InfoEncoder;
/**
* <p> TokenUtil.java </p>
* <p>
* 令牌处理
* </p>
*/
public class TokenUtil {
private static InfoEncoder infoEncoder = new InfoEncoder();
/**
* <p>
* 根据sessionId和UserId生成令牌
* </p>
* @param sessionId
* @param userId
* @return
*/
public static String createToken(String sessionId, Long userId) {
if (sessionId != null && userId != null) {
String originalToken = sessionId + "," + System.currentTimeMillis() + "," + userId;
return infoEncoder.createEncryptor(originalToken);
}
return null;
}
/**
* <p>
* 根据用户令牌获取标准用户ID
* </p>
* @param token
* @return
*/
public static Long getUserIdFromToken(String token) {
if (token != null) {
String originalToken = infoEncoder.createDecryptor(token);
int beginIndex = originalToken.lastIndexOf(",");
String userId = originalToken.substring(beginIndex + 1);
return new Long(userId);
}
return null;
}
/**
* <p>
* 根据用户令牌获取SessionId
* </p>
* @param token
* @return
*/
public static Long getSessionIdFromToken(String token) {
if (token != null) {
String originalToken = infoEncoder.createDecryptor(token);
int index = originalToken.indexOf(",");
String sessionId = originalToken.substring(0, index);
return new Long(sessionId);
}
return null;
}
}