Skip to content

Commit f1effb5

Browse files
Thomasludomikula
Thomas
authored andcommitted
#948 Add source mapping
fix config keys
1 parent 1e62629 commit f1effb5

File tree

5 files changed

+18
-6
lines changed

5 files changed

+18
-6
lines changed

server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/auth/Oauth2GenericAuthConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import lombok.experimental.SuperBuilder;
55
import lombok.extern.jackson.Jacksonized;
66

7+
import java.util.HashMap;
8+
79
import static org.lowcoder.sdk.auth.constants.Oauth2Constants.BASE_URL_PLACEHOLDER;
810
import static org.lowcoder.sdk.auth.constants.Oauth2Constants.SCOPE_PLACEHOLDER;
911

@@ -22,6 +24,7 @@ public class Oauth2GenericAuthConfig extends Oauth2SimpleAuthConfig {
2224
private String tokenEndpoint;
2325
private String userInfoEndpoint;
2426
private String scope;
27+
private HashMap<String, String> sourceMappings;
2528
private Boolean userInfoIntrospection;
2629

2730
@Override

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/dto/AuthConfigRequest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,11 @@ public String getSourceIcon() {
9797
}
9898

9999
public String getSourceCategory() {
100-
return getString("sourceDescription");
100+
return getString("sourceCategory");
101+
}
102+
103+
public HashMap<String, String> getSourceMappings() {
104+
return (HashMap<String, String>) MapUtils.getMap(this, "sourceMappings");
101105
}
102106

103107
public String getString(String key) {

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/request/oauth2/request/GenericAuthRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ protected Mono<AuthUser> getAuthUser(AuthToken authToken) {
9090
if (map.containsKey("error") || map.containsKey("error_description")) {
9191
return Mono.error(new AuthException(JsonUtils.toJson(map)));
9292
}
93-
return Mono.just(mapToAuthUser(map));
93+
return Mono.just(mapToAuthUser(map, config.getSourceMappings()));
9494
});
9595
}
9696
}

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/service/factory/AuthConfigFactoryImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ private Oauth2SimpleAuthConfig buildOauth2GenericAuthConfig(AuthConfigRequest au
108108
.sourceDescription(authConfigRequest.getSourceDescription())
109109
.sourceIcon(authConfigRequest.getSourceIcon())
110110
.sourceCategory(authConfigRequest.getSourceCategory())
111+
.sourceMappings(authConfigRequest.getSourceMappings())
111112
.clientId(requireNonNull(authConfigRequest.getClientId(), "clientId can not be null."))
112113
.clientSecret(authConfigRequest.getClientSecret())
113114
.issuerUri(authConfigRequest.getIssuerUri())

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static reactor.core.scheduler.Schedulers.newBoundedElastic;
55

66
import java.util.Collection;
7+
import java.util.HashMap;
78
import java.util.Map;
89

910
import org.apache.commons.collections4.MapUtils;
@@ -76,13 +77,16 @@ public static AuthToken mapToAuthToken(Map<String, Object> map) {
7677

7778
/**
7879
* Utility method to map from Map to AuthUser
79-
* @param map Object
80+
*
81+
* @param map Object
82+
* @param sourceMappings
8083
* @return AuthUser
8184
*/
82-
public static AuthUser mapToAuthUser(Map<String, Object> map) {
85+
public static AuthUser mapToAuthUser(Map<String, Object> map, HashMap<String, String> sourceMappings) {
8386
return AuthUser.builder()
84-
.uid(MapUtils.getString(map, "sub"))
85-
.username(MapUtils.getString(map, "email"))
87+
.uid(MapUtils.getString(map, MapUtils.getString(sourceMappings, "uid")))
88+
.username(MapUtils.getString(map, MapUtils.getString(sourceMappings, "username")))
89+
.avatar(MapUtils.getString(map, MapUtils.getString(sourceMappings, "avatar")))
8690
.rawUserInfo(map)
8791
.build();
8892
}

0 commit comments

Comments
 (0)