package com.zhitan.common.utils;
|
|
import cn.hutool.core.util.ObjectUtil;
|
import com.zhitan.common.config.keycloak.AuthKeycloakRequest;
|
import com.zhitan.common.config.keycloak.AuthRedisStateCache;
|
import com.zhitan.common.config.keycloak.SocialLoginConfigProperties;
|
import com.zhitan.common.utils.spring.SpringUtils;
|
import me.zhyd.oauth.config.AuthConfig;
|
import me.zhyd.oauth.exception.AuthException;
|
import me.zhyd.oauth.model.AuthCallback;
|
import me.zhyd.oauth.model.AuthResponse;
|
import me.zhyd.oauth.model.AuthUser;
|
import me.zhyd.oauth.request.AuthDingTalkRequest;
|
import me.zhyd.oauth.request.AuthRequest;
|
|
|
/**
|
* 认证授权工具类
|
*
|
* @author thiszhc
|
*/
|
public class SocialUtils {
|
|
private static final AuthRedisStateCache STATE_CACHE = SpringUtils.getBean(AuthRedisStateCache.class);
|
private static final SocialLoginConfigProperties obj = SpringUtils.getBean(SocialLoginConfigProperties.class);
|
@SuppressWarnings("unchecked")
|
public static AuthResponse<AuthUser> loginAuth( String code, String state) throws AuthException {
|
AuthRequest authRequest = getAuthKeyloakRequest();
|
AuthCallback callback = new AuthCallback();
|
callback.setCode(code);
|
callback.setState(state);
|
return authRequest.login(callback);
|
}
|
|
|
|
public static AuthKeycloakRequest getAuthKeyloakRequest( ) {
|
|
AuthConfig.AuthConfigBuilder builder = AuthConfig.builder()
|
.clientId(obj.getClientId())
|
.clientSecret(obj.getClientSecret())
|
.redirectUri(obj.getRedirectUri())
|
.scopes(obj.getScopes());
|
return new AuthKeycloakRequest(builder.build(), STATE_CACHE);
|
}
|
}
|