package com.qianwen.smartman.modules.auth.service;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
import me.zhyd.oauth.config.AuthConfig;
|
import com.qianwen.core.social.props.BladeAuthSource;
|
import com.qianwen.core.social.props.ISocialProperties;
|
import com.qianwen.smartman.modules.sync.constant.OuterAppConfigConstant;
|
import com.qianwen.smartman.modules.sync.entity.OuterAppConfig;
|
import com.qianwen.smartman.modules.sync.service.IOuterAppConfigService;
|
import org.springframework.stereotype.Component;
|
|
@Component
|
public class SocialDbProperties implements ISocialProperties {
|
private final IOuterAppConfigService outerAppConfigService;
|
|
public SocialDbProperties(final IOuterAppConfigService outerAppConfigService) {
|
this.outerAppConfigService = outerAppConfigService;
|
}
|
|
public Map<String, AuthConfig> getOauth() {
|
Map<String, AuthConfig> oauthSource = new HashMap<>();
|
oauthSource.put(BladeAuthSource.DINGTALK_WEB.getName(), getAuthConfig(BladeAuthSource.DINGTALK_WEB.getName()));
|
oauthSource.put(BladeAuthSource.WECHAT_ENTERPRISE_WEB.getName(), getAuthConfig(BladeAuthSource.WECHAT_ENTERPRISE_WEB.getName()));
|
return oauthSource;
|
}
|
|
private AuthConfig getAuthConfig(final String source) {
|
int appType = (source.equalsIgnoreCase(BladeAuthSource.DINGTALK_WEB.toString()) ? OuterAppConfigConstant.DING : OuterAppConfigConstant.QY_WECHAT).intValue();
|
OuterAppConfig config = this.outerAppConfigService.getAppConfig(Integer.valueOf(appType));
|
AuthConfig authConfig = new AuthConfig();
|
if (config == null) {
|
return null;
|
}
|
if (appType == OuterAppConfigConstant.DING.intValue()) {
|
authConfig.setClientId(config.getDingAppKey());
|
authConfig.setClientSecret(config.getDingAppSecret());
|
authConfig.setAgentId(config.getDingAgentId());
|
} else {
|
authConfig.setClientId(config.getWxCorpId());
|
authConfig.setClientSecret(config.getWxAppSecret());
|
authConfig.setAgentId(config.getWxAgentId());
|
}
|
authConfig.setIgnoreCheckState(true);
|
authConfig.setIgnoreCheckRedirectUri(true);
|
return authConfig;
|
}
|
}
|