frontend-app-api: update app protection wiring
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
@@ -38,7 +38,6 @@
|
||||
"@backstage/core-plugin-api": "workspace:^",
|
||||
"@backstage/errors": "workspace:^",
|
||||
"@backstage/frontend-plugin-api": "workspace:^",
|
||||
"@backstage/plugin-auth-react": "workspace:^",
|
||||
"@backstage/theme": "workspace:^",
|
||||
"@backstage/types": "workspace:^",
|
||||
"@backstage/version-bridge": "workspace:^",
|
||||
|
||||
@@ -38,8 +38,6 @@ import {
|
||||
} from '@backstage/core-plugin-api';
|
||||
import { InternalAppContext } from '../wiring/InternalAppContext';
|
||||
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
|
||||
import { AppAuthProvider } from '../../../core-app-api/src/app/AppAuthProvider';
|
||||
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
|
||||
import { AppIdentityProxy } from '../../../core-app-api/src/apis/implementations/IdentityApi/AppIdentityProxy';
|
||||
import { BrowserRouter } from 'react-router-dom';
|
||||
import { RouteTracker } from '../routing/RouteTracker';
|
||||
@@ -192,7 +190,7 @@ export function AppRouter(props: AppRouterProps) {
|
||||
return (
|
||||
<RouterComponent>
|
||||
<RouteTracker routeObjects={routeObjects} />
|
||||
<AppAuthProvider>{children}</AppAuthProvider>
|
||||
{children}
|
||||
</RouterComponent>
|
||||
);
|
||||
}
|
||||
@@ -204,7 +202,7 @@ export function AppRouter(props: AppRouterProps) {
|
||||
component={SignInPageComponent}
|
||||
appIdentityProxy={appIdentityProxy}
|
||||
>
|
||||
<AppAuthProvider>{children}</AppAuthProvider>
|
||||
{children}
|
||||
</SignInPageWrapper>
|
||||
</RouterComponent>
|
||||
);
|
||||
|
||||
@@ -43,6 +43,9 @@ import {
|
||||
featureFlagsApiRef,
|
||||
identityApiRef,
|
||||
AppTheme,
|
||||
errorApiRef,
|
||||
discoveryApiRef,
|
||||
fetchApiRef,
|
||||
} from '@backstage/core-plugin-api';
|
||||
import { getAvailableFeatures } from './discovery';
|
||||
import {
|
||||
@@ -54,6 +57,8 @@ import {
|
||||
|
||||
// TODO: Get rid of all of these
|
||||
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
|
||||
import { isProtectedApp } from '../../../core-app-api/src/app/isProtectedApp';
|
||||
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
|
||||
import { AppThemeProvider } from '../../../core-app-api/src/app/AppThemeProvider';
|
||||
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
|
||||
import { AppIdentityProxy } from '../../../core-app-api/src/apis/implementations/IdentityApi/AppIdentityProxy';
|
||||
@@ -281,6 +286,22 @@ export function createSpecializedApp(options?: {
|
||||
options?.icons,
|
||||
);
|
||||
|
||||
if (isProtectedApp()) {
|
||||
const discoveryApi = apiHolder.get(discoveryApiRef);
|
||||
const errorApi = apiHolder.get(errorApiRef);
|
||||
const fetchApi = apiHolder.get(fetchApiRef);
|
||||
if (!discoveryApi || !errorApi || !fetchApi) {
|
||||
throw new Error(
|
||||
'App is running in protected mode but missing required APIs',
|
||||
);
|
||||
}
|
||||
appIdentityProxy.enableCookieAuth({
|
||||
discoveryApi,
|
||||
errorApi,
|
||||
fetchApi,
|
||||
});
|
||||
}
|
||||
|
||||
const featureFlagApi = apiHolder.get(featureFlagsApiRef);
|
||||
if (featureFlagApi) {
|
||||
for (const feature of features) {
|
||||
|
||||
Reference in New Issue
Block a user