NetEasySDK.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.uas.eis.sdk;
  2. import com.netease.qiye.qiyeopenplatform.common.dto.login.AppLoginResp;
  3. import com.netease.qiye.qiyeopenplatform.common.dto.login.SsoLoginResp;
  4. import com.netease.qiye.qiyeopenplatform.sdk.QiyeOpenPlatSDK;
  5. import com.netease.qiye.qiyeopenplatform.sdk.QiyeOpenPlatSDKConfig;
  6. import com.netease.qiye.qiyeopenplatform.sdk.dto.R;
  7. import com.uas.eis.core.SSOTokenManager;
  8. import com.uas.eis.core.config.NetEasyConfig;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.stereotype.Component;
  12. import javax.annotation.Resource;
  13. @Component
  14. public class NetEasySDK {
  15. private final Logger logger = LoggerFactory.getLogger(getClass());
  16. @Resource
  17. private NetEasyConfig netEasyConfig;
  18. private QiyeOpenPlatSDK sdkInstance;
  19. private final String authSSOTokenKey = "NETEASY_SSO_TOKEN" ;
  20. public void initSDK() {
  21. QiyeOpenPlatSDKConfig qiyeOpenPlatSDKConfig = QiyeOpenPlatSDKConfig.builder()
  22. //应用ID
  23. .appId(netEasyConfig.getAppId())
  24. //企业OpenID
  25. .orgOpenId(netEasyConfig.getCropId())
  26. //服务地址信息
  27. .urlPrefix(netEasyConfig.getServerUrl())
  28. .build();
  29. //创建SDK实例
  30. this.sdkInstance= new QiyeOpenPlatSDK("dev", qiyeOpenPlatSDKConfig);
  31. // 查看文档,应用获取token
  32. R<AppLoginResp> appLoginR = sdkInstance.appLogin(netEasyConfig.getAuthCode());
  33. sdkInstance.getQiyeOpenPlatSDKConfig().setupToken((AppLoginResp) appLoginR.getDataBean(AppLoginResp.class));
  34. }
  35. public QiyeOpenPlatSDK getSDKInstance(){
  36. if (sdkInstance == null) {
  37. initSDK();
  38. }
  39. return sdkInstance;
  40. }
  41. public String getSsoAuthToken () {
  42. String ssoAuthToken = SSOTokenManager.getSsoAuthToken(authSSOTokenKey);
  43. logger.info("获取缓存ssoAuthToken,key:{}",ssoAuthToken);
  44. if (ssoAuthToken == null) {
  45. QiyeOpenPlatSDKConfig qiyeOpenPlatSDKConfig = QiyeOpenPlatSDKConfig.builder()
  46. //应用ID
  47. .appId(netEasyConfig.getAppId())
  48. //企业OpenID
  49. .orgOpenId(netEasyConfig.getCropId())
  50. //服务地址信息
  51. .urlPrefix(netEasyConfig.getServerUrl())
  52. .build();
  53. //创建SDK实例
  54. this.sdkInstance= new QiyeOpenPlatSDK("dev", qiyeOpenPlatSDKConfig);
  55. // 查看文档,应用获取token
  56. R<SsoLoginResp> ssoLoginRespR = sdkInstance.ssoAuthToken(netEasyConfig.getAuthCode());
  57. SsoLoginResp ssoLoginResp = ssoLoginRespR.getDataBean(SsoLoginResp.class);
  58. SSOTokenManager.setSsoAuthToken(authSSOTokenKey, ssoLoginResp.getSsoAuthToken(), ssoLoginResp.getSsoAuthTokenExpiredTime().getTime());
  59. return ssoLoginResp.getSsoAuthToken();
  60. } else {
  61. logger.info("从缓存中获取ssoAuthToken:token{}",ssoAuthToken);
  62. return ssoAuthToken;
  63. }
  64. }
  65. }