diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
index e97ca3d..a1f68db 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -43,24 +43,34 @@ import { KubernetesClusterPickerExtension } from '@cnoe-io/plugin-scaffolder-act
import { ThemeProvider } from '@material-ui/core/styles';
import CssBaseline from '@material-ui/core/CssBaseline';
import LightIcon from '@material-ui/icons/WbSunny';
-import {CNOEHomepage, cnoeLightTheme, cnoeDarkTheme} from '@internal/cnoe-ui-plugin'
+import {
+ CNOEHomepage,
+ cnoeLightTheme,
+ cnoeDarkTheme,
+} from '@internal/cnoe-ui-plugin';
+import { configApiRef, useApi } from '@backstage/core-plugin-api';
const app = createApp({
apis,
components: {
- // SignInPage: (props) => ,
- SignInPage: props => (
-
- ),
+ SignInPage: props => {
+ const configApi = useApi(configApiRef);
+ if (configApi.getString('auth.environment') === 'local') {
+ return ;
+ }
+ return (
+
+ );
+ },
},
bindRoutes({ bind }) {
bind(catalogPlugin.externalRoutes, {
@@ -100,13 +110,13 @@ const app = createApp({
),
},
- ]
+ ],
});
const routes = (
} />
- } />
+ } />
} />
{
- return await createRouter({
+ const opts = {
logger: env.logger,
config: env.config,
database: env.database,
@@ -22,24 +22,36 @@ export default async function createPlugin(
tokenManager: env.tokenManager,
providerFactories: {
...defaultAuthProviderFactories,
- 'keycloak-oidc': providers.oidc.create({
- signIn: {
- resolver(info, ctx) {
- const userRef = stringifyEntityRef({
- kind: 'User',
- name: info.result.userinfo.sub,
- namespace: DEFAULT_NAMESPACE,
- });
- return ctx.issueToken({
- claims: {
- sub: userRef,
- ent: [userRef],
- groups: (info.result.userinfo.groups as JsonArray) || [],
- },
- });
- },
- },
- }),
},
- });
+ };
+
+ const envName = env.config
+ .getOptionalConfig('auth')
+ ?.getOptionalString('auth');
+ if (envName === 'local') {
+ return await createRouter(opts);
+ }
+
+ const keycloakAuth = (opts.providerFactories['keycloak-oidc'] =
+ providers.oidc.create({
+ signIn: {
+ resolver(info, ctx) {
+ const userRef = stringifyEntityRef({
+ kind: 'User',
+ name: info.result.userinfo.sub,
+ namespace: DEFAULT_NAMESPACE,
+ });
+ return ctx.issueToken({
+ claims: {
+ sub: userRef,
+ ent: [userRef],
+ groups: (info.result.userinfo.groups as JsonArray) || [],
+ },
+ });
+ },
+ },
+ }));
+ opts.providerFactories['keycloak-oidc'] = keycloakAuth;
+
+ return await createRouter(opts);
}