Skip to content

Commit 55733fe

Browse files
committed
fix: rewrite blocking call causing API timeouts
1 parent bc630fa commit 55733fe

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/framework/filter/UserSessionPersistenceFilter.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -65,23 +65,24 @@ public Mono<Void> filter(@Nonnull ServerWebExchange exchange, WebFilterChain cha
6565
boolean isAccessTokenExpiryNear = (connection.getAuthConnectionAuthToken().getExpireAt()*1000) <= next5Minutes.toEpochMilli();
6666
if(isAccessTokenExpiryNear) {
6767
connection.getOrgIds().forEach(orgId -> {
68-
FindAuthConfig findAuthConfig = authenticationService.findAuthConfigByAuthId(orgId, connection.getAuthId()).block();
69-
if(findAuthConfig == null) {
70-
return;
71-
}
72-
OAuth2RequestContext oAuth2RequestContext = new OAuth2RequestContext(orgId, null, null);
73-
oAuth2RequestContext.setAuthConfig(findAuthConfig.authConfig());
74-
AuthRequest authRequest = authRequestFactory.build(oAuth2RequestContext).block();
75-
try {
76-
AuthUser authUser = authRequest.refresh(connection.getAuthConnectionAuthToken().getRefreshToken()).block();
77-
authUser.setAuthContext(oAuth2RequestContext);
78-
authenticationApiService.updateConnection(authUser, user);
79-
} catch (Exception e) {
80-
log.error("Failed to refresh access token. Removing user sessions/tokens.");
81-
tokensToRemove.addAll(connection.getTokens());
82-
}
68+
authenticationService.findAuthConfigByAuthId(orgId, connection.getAuthId())
69+
.doOnSuccess(findAuthConfig -> {
70+
if(findAuthConfig == null) {
71+
return;
72+
}
73+
OAuth2RequestContext oAuth2RequestContext = new OAuth2RequestContext(orgId, null, null);
74+
oAuth2RequestContext.setAuthConfig(findAuthConfig.authConfig());
75+
AuthRequest authRequest = authRequestFactory.build(oAuth2RequestContext).block();
76+
try {
77+
AuthUser authUser = authRequest.refresh(connection.getAuthConnectionAuthToken().getRefreshToken()).block();
78+
authUser.setAuthContext(oAuth2RequestContext);
79+
authenticationApiService.updateConnection(authUser, user);
80+
} catch (Exception e) {
81+
log.error("Failed to refresh access token. Removing user sessions/tokens.");
82+
tokensToRemove.addAll(connection.getTokens());
83+
}
84+
});
8385
});
84-
8586
}
8687
}
8788
});

0 commit comments

Comments
 (0)