基于金蝶EAS8.5.0(s-HR8.5 SP1),生成OTP一次性密钥,拼接单点登录链接,用于单点登录到金蝶EAS(s-HR)系统;
其中,配置文件(SSC_LTP)为LtpaToken.properties,需要从金蝶EAS服务器获取实际的文件;
LtpaTokenManager工具类,需要向金蝶开发人员索取对应的jar包。
以下代码用法:基于配置文件和金蝶提供的工具类,生成单点登录链接,可直接跳转到金蝶系统,实现单点登录。
package com.kingdee.eas.si.util;
import java.net.URLEncoder;
import com.kingdee.eas.cp.eip.sso.ltpa.LtpaTokenManager;
/**
* 单点登录工具类,拼接单点登录地址
* 请根据实际情况,修改变量,或抽取到配置文件中
* @author 郭旭
*
*/
public class SsoUtil {
/**s-HR系统地址:IP/PORT**/
public static final String URL = Resource.get("SSC_URL");
/**(请根据实际情况修改)配置文件路径**/
public static final String PATH = Resource.get("SSC_LTP");
/**(不可修改)单点登录跳转路径**/
public static final String SSO = "/portal/index2sso.jsp?";
/**
* 根据用户名,拼接单点登录链接地址
* 需要跳转到门户时,redirectTo=/
* 如需跳转s-HR系统首页:redirectTo=/shr
* @param user 用户名
* @return 单点登录链接
*
*/
public static String getUrl(String user) throws Exception {
StringBuffer url = new StringBuffer();
url.append(URL).append(SSO);
String password = LtpaTokenManager.generate(user, PATH).toString(); //生成一次性密钥
url.append("username=").append(URLEncoder.encode(user, "UTF-8"));
url.append("&password=").append(URLEncoder.encode(password, "UTF-8"));
url.append("&redirectTo=/");
return url.toString();
}
}