Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit157425a

Browse files
author
th37rose
committed
Implemented the generic Auth feature without additional .well_known endpoint.
1 parent1225318 commit157425a

File tree

8 files changed

+34
-112
lines changed

8 files changed

+34
-112
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public String getAuthorizeUrl() {
3838
caseAuthTypeConstants.GITHUB ->replaceAuthUrlClientIdPlaceholder(Oauth2Constants.GITHUB_AUTHORIZE_URL);
3939
caseAuthTypeConstants.ORY ->replaceAuthUrlClientIdPlaceholder(Oauth2Constants.ORY_AUTHORIZE_URL);
4040
caseAuthTypeConstants.KEYCLOAK ->replaceAuthUrlClientIdPlaceholder(Oauth2Constants.KEYCLOAK_AUTHORIZE_URL);
41-
caseAuthTypeConstants.GENERIC ->replaceAuthUrlClientIdPlaceholder(((Oauth2GenericAuthConfig)this).getAuthorizationEndpoint());
41+
caseAuthTypeConstants.GENERIC ->((Oauth2GenericAuthConfig)this).getAuthorizationEndpoint();
4242
default ->null;
4343
};
4444
}

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/AuthenticationController.java‎

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -130,24 +130,4 @@ public Mono<ResponseView<List<APIKey>>> getAllAPIKeys() {
130130
.collectList()
131131
.map(ResponseView::success);
132132
}
133-
134-
/**
135-
* This endpoint is to get IDP configuration
136-
* @param issuerUri String
137-
* @param source String
138-
* @param sourceName String
139-
* @param clientId String
140-
* @param clientSecret String
141-
* @return Oauth2GenericAuthConfig
142-
*/
143-
@Override
144-
publicMono<ResponseView<Oauth2GenericAuthConfig>>addOAuthProvider(StringissuerUri,
145-
Stringsource,
146-
StringsourceName,
147-
StringclientId,
148-
StringclientSecret) {
149-
returnauthenticationApiService.fetchAndParseConfiguration(issuerUri,source,sourceName,clientId,clientSecret)
150-
.map(ResponseView::success);
151-
}
152-
153133
}

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/AuthenticationEndpoints.java‎

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -162,20 +162,4 @@ public Mono<ResponseView<Boolean>> linkAccountWithThirdParty(
162162
*/
163163
publicrecordFormLoginRequest(StringloginId,Stringpassword,booleanregister,Stringsource,StringauthId) {
164164
}
165-
166-
/**
167-
* This endpoint is to get IDP configuration
168-
* @param issuerUri String
169-
* @param source String
170-
* @param sourceName String
171-
* @param clientId String
172-
* @param clientSecret String
173-
* @return Oauth2GenericAuthConfig
174-
*/
175-
@GetMapping("/providers")
176-
publicMono<ResponseView<Oauth2GenericAuthConfig>>addOAuthProvider(@RequestParamStringissuerUri,
177-
@RequestParamStringsource,
178-
@RequestParamStringsourceName,
179-
@RequestParamStringclientId,
180-
@RequestParamStringclientSecret);
181165
}

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
packageorg.lowcoder.api.authentication.dto;
22

33
importjakarta.annotation.Nullable;
4+
importjakarta.validation.constraints.Null;
45
importorg.apache.commons.collections4.MapUtils;
56
importorg.apache.commons.lang3.ObjectUtils;
67
importorg.apache.commons.lang3.StringUtils;
@@ -27,6 +28,30 @@ public boolean isEnableRegister() {
2728
returnMapUtils.getBoolean(this,"enableRegister",true);
2829
}
2930

31+
/**
32+
* Additional configs for generic
33+
* config will be updated instead of creating a new one.
34+
*/
35+
@Nullable
36+
publicStringgetIssuerUri() {
37+
returngetString("issuer");
38+
}
39+
40+
@Nullable
41+
publicStringgetAuthorizationEndpoint() {
42+
returngetString("authorizationEndpoint");
43+
}
44+
45+
@Nullable
46+
publicStringgetTokenEndpoint() {
47+
returngetString("tokenEndpoint");
48+
}
49+
50+
@Nullable
51+
publicStringgetUserInfoEndpoint() {
52+
returngetString("userInfoEndpoint");
53+
}
54+
3055
@Nullable
3156
publicStringgetInstanceId() {
3257
returngetString("instanceId");

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
importorg.lowcoder.domain.user.model.AuthToken;
77
importorg.lowcoder.domain.user.model.AuthUser;
88
importorg.lowcoder.sdk.auth.Oauth2GenericAuthConfig;
9-
importorg.lowcoder.sdk.auth.Oauth2KeycloakAuthConfig;
109
importorg.lowcoder.sdk.util.JsonUtils;
1110
importorg.lowcoder.sdk.webclient.WebClientBuildHelper;
1211
importorg.springframework.http.MediaType;

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/service/AuthenticationApiService.java‎

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
importorg.lowcoder.domain.authentication.FindAuthConfig;
77
importorg.lowcoder.domain.user.model.APIKey;
88
importorg.lowcoder.domain.user.model.AuthUser;
9-
importorg.lowcoder.sdk.auth.Oauth2GenericAuthConfig;
109
importorg.springframework.web.server.ServerWebExchange;
1110
importreactor.core.publisher.Flux;
1211
importreactor.core.publisher.Mono;
@@ -30,19 +29,4 @@ public interface AuthenticationApiService {
3029
Mono<Void>deleteAPIKey(StringauthId);
3130

3231
Flux<APIKey>findAPIKeys();
33-
34-
/**
35-
* This method is to fetch and parse the OpenID configuration from the issuer URI.
36-
* @param issuerUri String
37-
* @param source String
38-
* @param sourceName String
39-
* @param clientId String
40-
* @param clientSecret String
41-
* @return Oauth2GenericAuthConfig
42-
*/
43-
Mono<Oauth2GenericAuthConfig>fetchAndParseConfiguration(StringissuerUri,
44-
Stringsource,
45-
StringsourceName,
46-
StringclientId,
47-
StringclientSecret);
4832
}

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/service/AuthenticationApiServiceImpl.java‎

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -333,56 +333,6 @@ public Flux<APIKey> findAPIKeys() {
333333
);
334334
}
335335

336-
/**
337-
* This method is to fetch and parse the OpenID configuration from the issuer URI.
338-
* @param issuerUri String
339-
* @param source String
340-
* @param sourceName String
341-
* @param clientId String
342-
* @param clientSecret String
343-
* @return Oauth2GenericAuthConfig
344-
*/
345-
@Override
346-
publicMono<Oauth2GenericAuthConfig>fetchAndParseConfiguration(StringissuerUri,
347-
Stringsource,
348-
StringsourceName,
349-
StringclientId,
350-
StringclientSecret) {
351-
StringwellKnownUri =issuerUri +"/.well-known/openid-configuration";
352-
returnWebClientBuildHelper.builder()
353-
.systemProxy()
354-
.build()
355-
.get()
356-
.uri(wellKnownUri)
357-
.retrieve()
358-
.bodyToMono(Map.class)
359-
.map(map ->mapToConfig(map,source,sourceName,clientId,clientSecret));
360-
}
361-
362-
/**
363-
* This method is to map to config for Generic Auth Provider
364-
* @param map Object that comes from /.well-known endpoint for IDP Configuration
365-
* @return Oauth2GenericAuthConfig
366-
*/
367-
privateOauth2GenericAuthConfigmapToConfig(Map<String,Object>map,
368-
Stringsource,
369-
StringsourceName,
370-
StringclientId,
371-
StringclientSecret) {
372-
returnOauth2GenericAuthConfig.builder()
373-
.authType(AuthTypeConstants.GENERIC)
374-
.source(source)
375-
.sourceName(sourceName)
376-
.clientId(clientId)
377-
.clientSecret(clientSecret)
378-
.issuerUri((String)map.get("issuer"))
379-
.authorizationEndpoint((String)map.get("authorization_endpoint"))
380-
.tokenEndpoint((String)map.get("token_endpoint"))
381-
.userInfoEndpoint((String)map.get("userinfo_endpoint"))
382-
.build();
383-
}
384-
385-
386336
privateMono<Void>removeTokensByAuthId(StringauthId) {
387337
returnsessionUserService.getVisitorOrgMemberCache()
388338
.flatMapMany(orgMember ->orgMemberService.getOrganizationMembers(orgMember.getOrgId()))

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public class AuthConfigFactoryImpl implements AuthConfigFactory {
1919

2020
@Override
2121
publicAbstractAuthConfigbuild(AuthConfigRequestauthConfigRequest,booleanenable) {
22+
buildOauth2GenericAuthConfig(authConfigRequest,enable);
2223
returnswitch (authConfigRequest.getAuthType()) {
2324
caseAuthTypeConstants.FORM ->buildEmailAuthConfig(authConfigRequest,enable);
2425
caseAuthTypeConstants.GITHUB ->buildOauth2SimpleAuthConfig(GITHUB,GITHUB_NAME,authConfigRequest,enable);
@@ -103,16 +104,15 @@ private Oauth2SimpleAuthConfig buildOauth2GenericAuthConfig(AuthConfigRequest au
103104
.id(authConfigRequest.getId())
104105
.enable(enable)
105106
.enableRegister(authConfigRequest.isEnableRegister())
106-
.source(AuthTypeConstants.GENERIC)
107-
.sourceName(org.lowcoder.sdk.constants.AuthSourceConstants.KEYCLOAK_NAME)
107+
.source(authConfigRequest.getSource(AuthTypeConstants.GENERIC))
108+
.sourceName(authConfigRequest.getSourceName(AuthTypeConstants.GENERIC))
108109
.clientId(requireNonNull(authConfigRequest.getClientId(),"clientId can not be null."))
109110
.clientSecret(authConfigRequest.getClientSecret())
110-
.issuerUri(authConfigRequest.getString("issuer"))
111-
.authorizationEndpoint(authConfigRequest.getString("authorization_endpoint"))
112-
.tokenEndpoint(authConfigRequest.getString("token_endpoint"))
113-
.userInfoEndpoint(authConfigRequest.getString("userinfo_endpoint"))
114-
.authType(authConfigRequest.getAuthType())
111+
.issuerUri(authConfigRequest.getIssuerUri())
112+
.authorizationEndpoint(authConfigRequest.getAuthorizationEndpoint())
113+
.tokenEndpoint(authConfigRequest.getTokenEndpoint())
114+
.userInfoEndpoint(authConfigRequest.getUserInfoEndpoint())
115+
.authType(AuthTypeConstants.GENERIC)
115116
.build();
116-
117117
}
118118
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp