package com.gustz.dove.cpcli.api.security.service.impl;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.sinovatech.rd.wcsb.cli.api.security.service.impl.OauthServiceImpl;
import com.sinovatech.rd.wcsb.cli.api.service.conf.WebsUrlParam;
import com.sinovatech.rd.wcsb.cpcli.api.security.rsp.UserOAuthRsp;
import com.sinovatech.rd.wcsb.cpcli.api.security.service.AcTokenCpService;
import com.sinovatech.rd.wcsb.cpcli.api.security.service.OauthCpService;
import com.gustz.dove.cpcli.api.service.conf.SecurityWsUrl;
/**
*
* TODO: OAuth服务的接口实现
*
* @author ZHENFENG ZHANG
* @since [ Aug 3, 2015 ]
*/
@Service
public class OauthCpServiceImpl extends OauthServiceImpl implements OauthCpService {
@Autowired
private AcTokenCpService acTokenCpService;
/**
* 获取snsapi_base范围的OAuth授权URL
*
* @param cliAppCode
* @param state
* @return
*/
@Override
public String getSnsapiBaseUrl(String cliAppCode, String state) {
//
return this.getSnsapiBaseUrl(SecurityWsUrl.WSC07101CP, cliAppCode, state);
}
/**
* 获取snsapi_userinfo范围的OAuth授权URL
*
* @param cliAppCode
* @param state
* @return
*/
@Override
public String getSnsapiUserInfoUrl(String cliAppCode, String state) {
//
return this.getSnsapiUserInfoUrl(SecurityWsUrl.WSC07101CP, cliAppCode, state);
}
/**
* 根据code获取成员信息
*
* @param sn
* @param cliAppCode
* @param devAcCode
* @param oauthCode
* @return
*/
@Override
public UserOAuthRsp getUserByOAuth(long sn, String cliAppCode, String devAcCode, String oauthCode) {
SecurityWsUrl _wsUrl = SecurityWsUrl.WSC07102CP;
// 请求参数
this.setAccessTokenX(sn, cliAppCode, devAcCode);
Map<String, String> _paramMap = new HashMap<String, String>();
_paramMap.put(WebsUrlParam.CODE, oauthCode); // OAuth授权的code
this.setWebsUrlParamMap(_paramMap);
//
return this.httpGet(_wsUrl, sn, cliAppCode, new UserOAuthRsp(sn, _wsUrl.getWebsCode()));
}
@Override
protected void setAccessTokenX(long sn, String cliAppCode, String devAcCode) {
this.setAccessToken(acTokenCpService.getAccessTokenCp(sn, cliAppCode, devAcCode));
}
}