| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package com.uas.eis.sdk;
- import com.netease.qiye.qiyeopenplatform.common.dto.login.AppLoginResp;
- import com.netease.qiye.qiyeopenplatform.common.dto.login.SsoLoginResp;
- import com.netease.qiye.qiyeopenplatform.sdk.QiyeOpenPlatSDK;
- import com.netease.qiye.qiyeopenplatform.sdk.QiyeOpenPlatSDKConfig;
- import com.netease.qiye.qiyeopenplatform.sdk.dto.R;
- import com.uas.eis.core.SSOTokenManager;
- import com.uas.eis.core.config.NetEasyConfig;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Component;
- import javax.annotation.Resource;
- @Component
- public class NetEasySDK {
- private final Logger logger = LoggerFactory.getLogger(getClass());
- @Resource
- private NetEasyConfig netEasyConfig;
- private QiyeOpenPlatSDK sdkInstance;
- private final String authSSOTokenKey = "NETEASY_SSO_TOKEN" ;
- public void initSDK() {
- QiyeOpenPlatSDKConfig qiyeOpenPlatSDKConfig = QiyeOpenPlatSDKConfig.builder()
- //应用ID
- .appId(netEasyConfig.getAppId())
- //企业OpenID
- .orgOpenId(netEasyConfig.getCropId())
- //服务地址信息
- .urlPrefix(netEasyConfig.getServerUrl())
- .build();
- //创建SDK实例
- this.sdkInstance= new QiyeOpenPlatSDK("dev", qiyeOpenPlatSDKConfig);
- // 查看文档,应用获取token
- R<AppLoginResp> appLoginR = sdkInstance.appLogin(netEasyConfig.getAuthCode());
- sdkInstance.getQiyeOpenPlatSDKConfig().setupToken((AppLoginResp) appLoginR.getDataBean(AppLoginResp.class));
- }
- public QiyeOpenPlatSDK getSDKInstance(){
- if (sdkInstance == null) {
- initSDK();
- }
- return sdkInstance;
- }
- public String getSsoAuthToken () {
- String ssoAuthToken = SSOTokenManager.getSsoAuthToken(authSSOTokenKey);
- logger.info("获取缓存ssoAuthToken,key:{}",ssoAuthToken);
- if (ssoAuthToken == null) {
- QiyeOpenPlatSDKConfig qiyeOpenPlatSDKConfig = QiyeOpenPlatSDKConfig.builder()
- //应用ID
- .appId(netEasyConfig.getAppId())
- //企业OpenID
- .orgOpenId(netEasyConfig.getCropId())
- //服务地址信息
- .urlPrefix(netEasyConfig.getServerUrl())
- .build();
- //创建SDK实例
- this.sdkInstance= new QiyeOpenPlatSDK("dev", qiyeOpenPlatSDKConfig);
- // 查看文档,应用获取token
- R<SsoLoginResp> ssoLoginRespR = sdkInstance.ssoAuthToken(netEasyConfig.getAuthCode());
- SsoLoginResp ssoLoginResp = ssoLoginRespR.getDataBean(SsoLoginResp.class);
- SSOTokenManager.setSsoAuthToken(authSSOTokenKey, ssoLoginResp.getSsoAuthToken(), ssoLoginResp.getSsoAuthTokenExpiredTime().getTime());
- return ssoLoginResp.getSsoAuthToken();
- } else {
- logger.info("从缓存中获取ssoAuthToken:token{}",ssoAuthToken);
- return ssoAuthToken;
- }
- }
- }
|