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 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); } }