Skip to content

Commit e5211e2

Browse files
authored
Merge pull request #994 from goldants/feature/generic-oauth
Feature/generic oauth
2 parents 33cf34b + d2ab966 commit e5211e2

File tree

6 files changed

+9
-5
lines changed

6 files changed

+9
-5
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,15 @@ public class Oauth2GenericAuthConfig extends Oauth2SimpleAuthConfig {
2626
private String scope;
2727
private HashMap<String, String> sourceMappings;
2828
private Boolean userInfoIntrospection;
29+
private Boolean userCanSelectAccounts;
2930

3031
@Override
3132
public String replaceAuthUrlClientIdPlaceholder(String url)
3233
{
3334
return super.replaceAuthUrlClientIdPlaceholder(url)
3435
.replace(BASE_URL_PLACEHOLDER, authorizationEndpoint)
35-
.replace(SCOPE_PLACEHOLDER, scope);
36+
.replace(SCOPE_PLACEHOLDER, scope)
37+
.concat(Boolean.FALSE.equals(userCanSelectAccounts)?"":"&prompt=select_account");
3638
}
3739

3840

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,5 @@ public class Oauth2Constants {
4848
+ "&redirect_uri=" + REDIRECT_URL_PLACEHOLDER
4949
+ "&state=" + STATE_PLACEHOLDER
5050
+ "&scope=" + SCOPE_PLACEHOLDER
51-
+ "&access_type=offline"
52-
+ "&prompt=select_account";
51+
+ "&access_type=offline";
5352
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.lowcoder.api.authentication.request.oauth2.request;
22

3+
import lombok.Setter;
34
import org.lowcoder.api.authentication.request.AuthException;
45
import org.lowcoder.api.authentication.request.oauth2.GenericOAuthProviderSource;
56
import org.lowcoder.api.authentication.request.oauth2.OAuth2RequestContext;

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,8 @@ private Oauth2SimpleAuthConfig buildOauth2GenericAuthConfig(AuthConfigRequest au
117117
.userInfoEndpoint(authConfigRequest.getUserInfoEndpoint())
118118
.scope(authConfigRequest.getScope())
119119
.authType(AuthTypeConstants.GENERIC)
120-
.userInfoIntrospection(MapUtils.getBoolean(authConfigRequest,"userInfoIntrospection", false))
120+
.userInfoIntrospection(MapUtils.getBoolean(authConfigRequest,"userInfoIntrospection"))
121+
.userCanSelectAccounts(MapUtils.getBoolean(authConfigRequest,"userCanSelectAccounts"))
121122
.build();
122123
}
123124
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public static AuthToken mapToAuthToken(Map<String, Object> map, HashMap<String,
7474
.accessToken(MapUtils.getString(map, "access_token"))
7575
.expireIn(MapUtils.getIntValue(map, "expires_in"))
7676
.refreshToken(MapUtils.getString(map, "refresh_token"))
77-
.jwt(AdvancedMapUtils.getString(map, MapUtils.getString(sourceMappings, "jwt")))
77+
.jwt(AdvancedMapUtils.getString(map, MapUtils.getString(sourceMappings, "jwt", "access_token")))
7878
.build();
7979
}
8080

server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/authentication/GenericAuthenticateTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public void testGoogleLoginSuccess(WireMockRuntimeInfo wmRuntimeInfo) {
8888
.scope("scope")
8989
.sourceMappings(sourceMappings)
9090
.userInfoIntrospection(true)
91+
.userCanSelectAccounts(true)
9192
.build();
9293

9394
var organization = Organization.builder().build();

0 commit comments

Comments
 (0)