From 536d1e9e19c2860c431cf0ecce8f64cac892ebe4 Mon Sep 17 00:00:00 2001 From: Chirag Madlani <12962843+chirag-madlani@users.noreply.github.com> Date: Fri, 21 Jul 2023 18:08:29 +0530 Subject: [PATCH] fix(ui): disable auto renew for react-okta (#12530) * fix(ui): disable autorenew for react-okta * update okta token on renewal --- .../src/components/ExploreV1/ExploreV1.component.tsx | 6 +++++- .../authentication/auth-provider/AuthProvider.tsx | 9 ++++++++- .../auth-provider/okta-auth-provider.tsx | 3 +++ .../authenticators/OktaAuthenticator.tsx | 10 ++++++---- .../ui/src/components/searched-data/SearchedData.tsx | 2 +- 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/src/components/ExploreV1/ExploreV1.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/ExploreV1/ExploreV1.component.tsx index 6bbaf622d09..53dce8c95c6 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/ExploreV1/ExploreV1.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/ExploreV1/ExploreV1.component.tsx @@ -414,7 +414,11 @@ const ExploreV1: React.FC = ({ handleSummaryPanelDisplay={handleSummaryPanelDisplay} isSummaryPanelVisible={showSummaryPanel} selectedEntityId={entityDetails?.id || ''} - totalValue={searchResults?.hits.total.value ?? 0} + totalValue={ + tabCounts?.[searchIndex] ?? + searchResults?.hits.total.value ?? + 0 + } onPaginationChange={onChangePage} /> ) : ( diff --git a/openmetadata-ui/src/main/resources/ui/src/components/authentication/auth-provider/AuthProvider.tsx b/openmetadata-ui/src/main/resources/ui/src/components/authentication/auth-provider/AuthProvider.tsx index be1c23f29a0..f098b6ea857 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/authentication/auth-provider/AuthProvider.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/authentication/auth-provider/AuthProvider.tsx @@ -299,7 +299,14 @@ export const AuthProvider = ({ const { isExpired, timeoutExpiry } = extractDetailsFromToken(); const refreshToken = localState.getRefreshToken(); - if (!isExpired && isNumber(timeoutExpiry) && refreshToken) { + // Basic & LDAP renewToken depends on RefreshToken hence adding a check here for the same + const shouldStartExpiry = + refreshToken || + [AuthTypes.BASIC, AuthTypes.LDAP].indexOf( + authConfig?.provider as AuthTypes + ) === -1; + + if (!isExpired && isNumber(timeoutExpiry) && shouldStartExpiry) { // Have 5m buffer before start trying for silent signIn // If token is about to expire then start silentSignIn // else just set timer to try for silentSignIn before token expires diff --git a/openmetadata-ui/src/main/resources/ui/src/components/authentication/auth-provider/okta-auth-provider.tsx b/openmetadata-ui/src/main/resources/ui/src/components/authentication/auth-provider/okta-auth-provider.tsx index 36f30597099..c73f5ff0081 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/authentication/auth-provider/okta-auth-provider.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/authentication/auth-provider/okta-auth-provider.tsx @@ -35,6 +35,9 @@ export const OktaAuthProvider: FunctionComponent = ({ redirectUri, scopes, pkce, + tokenManager: { + autoRenew: false, + }, }); const triggerLogin = async () => { diff --git a/openmetadata-ui/src/main/resources/ui/src/components/authentication/authenticators/OktaAuthenticator.tsx b/openmetadata-ui/src/main/resources/ui/src/components/authentication/authenticators/OktaAuthenticator.tsx index 41f5f213a35..eb7b71a0704 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/authentication/authenticators/OktaAuthenticator.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/authentication/authenticators/OktaAuthenticator.tsx @@ -64,11 +64,13 @@ const OktaAuthenticator = forwardRef( logout(); }, async renewIdToken() { - await oktaAuth.token.renewTokens(); - const idToken = oktaAuth.getIdToken() || ''; - localState.setOidcToken(idToken); + const renewToken = await oktaAuth.token.renewTokens(); + oktaAuth.tokenManager.setTokens(renewToken); + const newToken = + renewToken?.idToken?.idToken ?? oktaAuth.getIdToken() ?? ''; + localState.setOidcToken(newToken); - return Promise.resolve(idToken); + return Promise.resolve(newToken); }, })); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/searched-data/SearchedData.tsx b/openmetadata-ui/src/main/resources/ui/src/components/searched-data/SearchedData.tsx index e575155fa72..36f9fd03562 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/searched-data/SearchedData.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/searched-data/SearchedData.tsx @@ -157,7 +157,7 @@ const SearchedData: React.FC = ({ {searchResultCards}