Index: ssts-client-misc/src/main/java/com/forgon/disinfectsystem/security/dao/impl/cssdsyy/TokenAuthenticationDaoImpl.java =================================================================== diff -u --- ssts-client-misc/src/main/java/com/forgon/disinfectsystem/security/dao/impl/cssdsyy/TokenAuthenticationDaoImpl.java (revision 0) +++ ssts-client-misc/src/main/java/com/forgon/disinfectsystem/security/dao/impl/cssdsyy/TokenAuthenticationDaoImpl.java (revision 41134) @@ -0,0 +1,65 @@ +package com.forgon.disinfectsystem.security.dao.impl.cssdsyy; + +import net.sf.json.JSONObject; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + +import com.forgon.disinfectsystem.common.CssdUtils; +import com.forgon.disinfectsystem.security.dao.TokenAuthenticationDao; +import com.forgon.tools.Constants; + +/** + * 单点登录token验证接口的dao + * CSSDSYY-27 + */ +public class TokenAuthenticationDaoImpl implements TokenAuthenticationDao { + + private static final Logger logger = Logger.getLogger(TokenAuthenticationDaoImpl.class); + + /** + * 统一门户提供的接口地址 + */ + public static final String XSO_AUTH_SERVICE_ADDRESS = "http://172.18.3.208:8862/hygeia-ips/api/sso/verify"; + + @Override + public String authentication(String accessToken) throws Exception { + if(StringUtils.isBlank(accessToken)){ + throw new RuntimeException("登录令牌不能为空!"); + } + logger.debug("统一门户接口地址:" + XSO_AUTH_SERVICE_ADDRESS); + logger.debug("门户单点登录令牌:" + accessToken); + return getUserNameByToken(accessToken); + } + + /** + * 根据token获取用户名 + * @param accessToken + * @return + */ + private String getUserNameByToken(String accessToken) { + if(accessToken == null){ + return null; + } + //调用令牌验证接口,并返回用户名 + String userName = httpGetInvokeXSOAuthService(accessToken); + //String userName = accessToken; + return userName; + } + + /** + * 调用令牌验证接口,并返回用户名 + * @param accessToken 令牌 + * @return + */ + private String httpGetInvokeXSOAuthService(String accessToken) { + String param = "token=" + accessToken; + String result = CssdUtils.sendGetRequest(XSO_AUTH_SERVICE_ADDRESS, param, Constants.CHARSET_UTF8); + if(StringUtils.isBlank(result)){ + return null; + } + JSONObject json = JSONObject.fromObject(result); + return json.optString("uact_id"); + } + +} Index: ssts-web/src/main/webapp/disinfectsystem/config/cssdsyy/spring/security/applicationContext-acegi-security.xml =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/config/cssdsyy/spring/security/applicationContext-acegi-security.xml (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/config/cssdsyy/spring/security/applicationContext-acegi-security.xml (revision 41134) @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file