👽 AuthConfig 中 CodingGroupName 改为 DomainPrefix

This commit is contained in:
yadong.zhang 2021-03-30 23:25:30 +08:00
parent bc3af96328
commit 3753e3b9bc
3 changed files with 36 additions and 10 deletions

View File

@ -2,8 +2,8 @@ package me.zhyd.oauth.config;
import com.xkcoding.http.config.HttpConfig; import com.xkcoding.http.config.HttpConfig;
import lombok.*; import lombok.*;
import me.zhyd.oauth.enums.scope.AuthScope;
import me.zhyd.oauth.model.AuthCallback; import me.zhyd.oauth.model.AuthCallback;
import me.zhyd.oauth.utils.StringUtils;
import java.util.List; import java.util.List;
@ -66,13 +66,17 @@ public class AuthConfig {
private String agentId; private String agentId;
/** /**
* 使用 Coding 登录时需要传该值 * 域名前缀
* <p> * <p>
* 团队域名前缀比如以 https://justauth.coding.net/ 为例{@code codingGroupName} = justauth * 使用 Coding 登录和 Okta 登录时需要传该值
* <p>
* Coding 登录团队域名前缀比如以 https://justauth.coding.net 为例{@code domainPrefix} = justauth
* <p>
* Okta 登录Okta 账号域名前缀比如以 https://justauth.okta.com 为例{@code domainPrefix} = justauth
* *
* @since 1.15.5 * @since 1.16.0
*/ */
private String codingGroupName; private String domainPrefix;
/** /**
* 针对国外服务可以单独设置代理 * 针对国外服务可以单独设置代理
@ -138,4 +142,26 @@ public class AuthConfig {
* @since 1.15.9 * @since 1.15.9
*/ */
private boolean pkce; private boolean pkce;
/**
* Okta 授权服务器的 ID 默认为 default如果要使用自定义授权服务此处传实际的授权服务器 ID一个随机串
* <p>
* 创建自定义授权服务器请参考
* <p>
* https://developer.okta.com/docs/concepts/auth-servers
* <p>
* https://developer.okta.com/docs/guides/customize-authz-server
*
* @since 1.16.0
*/
private String authServerId;
/**
* 适配 builder 模式 set 值的情况
*
* @return authServerId
*/
public String getAuthServerId() {
return StringUtils.isEmpty(authServerId) ? "default" : authServerId;
}
} }

View File

@ -85,7 +85,7 @@ public class AuthCodingRequest extends AuthDefaultRequest {
*/ */
@Override @Override
public String authorize(String state) { public String authorize(String state) {
return UrlBuilder.fromBaseUrl(String.format(source.authorize(), config.getCodingGroupName())) return UrlBuilder.fromBaseUrl(String.format(source.authorize(), config.getDomainPrefix()))
.queryParam("response_type", "code") .queryParam("response_type", "code")
.queryParam("client_id", config.getClientId()) .queryParam("client_id", config.getClientId())
.queryParam("redirect_uri", config.getRedirectUri()) .queryParam("redirect_uri", config.getRedirectUri())
@ -102,7 +102,7 @@ public class AuthCodingRequest extends AuthDefaultRequest {
*/ */
@Override @Override
public String accessTokenUrl(String code) { public String accessTokenUrl(String code) {
return UrlBuilder.fromBaseUrl(String.format(source.accessToken(), config.getCodingGroupName())) return UrlBuilder.fromBaseUrl(String.format(source.accessToken(), config.getDomainPrefix()))
.queryParam("code", code) .queryParam("code", code)
.queryParam("client_id", config.getClientId()) .queryParam("client_id", config.getClientId())
.queryParam("client_secret", config.getClientSecret()) .queryParam("client_secret", config.getClientSecret())
@ -119,7 +119,7 @@ public class AuthCodingRequest extends AuthDefaultRequest {
*/ */
@Override @Override
public String userInfoUrl(AuthToken authToken) { public String userInfoUrl(AuthToken authToken) {
return UrlBuilder.fromBaseUrl(String.format(source.userInfo(), config.getCodingGroupName())) return UrlBuilder.fromBaseUrl(String.format(source.userInfo(), config.getDomainPrefix()))
.queryParam("access_token", authToken.getAccessToken()) .queryParam("access_token", authToken.getAccessToken())
.build(); .build();
} }

View File

@ -35,8 +35,8 @@ public class AuthChecker {
if (isSupported && AuthDefaultSource.WECHAT_ENTERPRISE == source) { if (isSupported && AuthDefaultSource.WECHAT_ENTERPRISE == source) {
isSupported = StringUtils.isNotEmpty(config.getAgentId()); isSupported = StringUtils.isNotEmpty(config.getAgentId());
} }
if (isSupported && AuthDefaultSource.CODING == source) { if (isSupported && (AuthDefaultSource.CODING == source || AuthDefaultSource.OKTA == source)) {
isSupported = StringUtils.isNotEmpty(config.getCodingGroupName()); isSupported = StringUtils.isNotEmpty(config.getDomainPrefix());
} }
if (isSupported && AuthDefaultSource.XMLY == source) { if (isSupported && AuthDefaultSource.XMLY == source) {
isSupported = StringUtils.isNotEmpty(config.getDeviceId()) && null != config.getClientOsType(); isSupported = StringUtils.isNotEmpty(config.getDeviceId()) && null != config.getClientOsType();