diff --git a/packages/frontend-app-api/package.json b/packages/frontend-app-api/package.json
index 097f5a3611..fb5e982058 100644
--- a/packages/frontend-app-api/package.json
+++ b/packages/frontend-app-api/package.json
@@ -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:^",
diff --git a/packages/frontend-app-api/src/extensions/AppRoot.tsx b/packages/frontend-app-api/src/extensions/AppRoot.tsx
index db8de268b0..f3a962dd10 100644
--- a/packages/frontend-app-api/src/extensions/AppRoot.tsx
+++ b/packages/frontend-app-api/src/extensions/AppRoot.tsx
@@ -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 (
- {children}
+ {children}
);
}
@@ -204,7 +202,7 @@ export function AppRouter(props: AppRouterProps) {
component={SignInPageComponent}
appIdentityProxy={appIdentityProxy}
>
- {children}
+ {children}
);
diff --git a/packages/frontend-app-api/src/wiring/createApp.tsx b/packages/frontend-app-api/src/wiring/createApp.tsx
index 6e0a2c7cd7..cf6ea6dab4 100644
--- a/packages/frontend-app-api/src/wiring/createApp.tsx
+++ b/packages/frontend-app-api/src/wiring/createApp.tsx
@@ -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) {