mirror of
https://github.com/Unleash/unleash.git
synced 2025-07-02 01:17:58 +02:00
Create a apiuser for demo auth. (#1045)
- If api token middleware is disabled, still allow calls to /api/client with a populated fake api user with client access.
This commit is contained in:
parent
28d0238732
commit
62b121285c
@ -94,7 +94,12 @@ export default function getApp(
|
|||||||
}
|
}
|
||||||
case IAuthType.DEMO: {
|
case IAuthType.DEMO: {
|
||||||
app.use(baseUriPath, apiTokenMiddleware(config, services));
|
app.use(baseUriPath, apiTokenMiddleware(config, services));
|
||||||
demoAuthentication(app, config.server.baseUriPath, services);
|
demoAuthentication(
|
||||||
|
app,
|
||||||
|
config.server.baseUriPath,
|
||||||
|
services,
|
||||||
|
config,
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case IAuthType.CUSTOM: {
|
case IAuthType.CUSTOM: {
|
||||||
@ -107,7 +112,13 @@ export default function getApp(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
demoAuthentication(app, config.server.baseUriPath, services);
|
app.use(baseUriPath, apiTokenMiddleware(config, services));
|
||||||
|
demoAuthentication(
|
||||||
|
app,
|
||||||
|
config.server.baseUriPath,
|
||||||
|
services,
|
||||||
|
config,
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
import { Application } from 'express';
|
import { Application } from 'express';
|
||||||
import AuthenticationRequired from '../types/authentication-required';
|
import AuthenticationRequired from '../types/authentication-required';
|
||||||
import { IUnleashServices } from '../types/services';
|
import { IUnleashServices } from '../types/services';
|
||||||
|
import { IUnleashConfig } from '../types/option';
|
||||||
|
import ApiUser from '../types/api-user';
|
||||||
|
import { ApiTokenType } from '../types/models/api-token';
|
||||||
|
|
||||||
function demoAuthentication(
|
function demoAuthentication(
|
||||||
app: Application,
|
app: Application,
|
||||||
basePath: string = '',
|
basePath: string = '',
|
||||||
{ userService }: Pick<IUnleashServices, 'userService'>,
|
{ userService }: Pick<IUnleashServices, 'userService'>,
|
||||||
|
{ authentication }: Pick<IUnleashConfig, 'authentication'>,
|
||||||
): void {
|
): void {
|
||||||
app.post(`${basePath}/api/admin/login`, async (req, res) => {
|
app.post(`${basePath}/api/admin/login`, async (req, res) => {
|
||||||
const { email } = req.body;
|
const { email } = req.body;
|
||||||
@ -39,6 +43,21 @@ function demoAuthentication(
|
|||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.use(`${basePath}/api/client`, (req, res, next) => {
|
||||||
|
// @ts-ignore
|
||||||
|
if (!authentication.enableApiToken && !req.user) {
|
||||||
|
// @ts-ignore
|
||||||
|
req.user = new ApiUser({
|
||||||
|
username: 'unauthed-default-client',
|
||||||
|
permissions: [],
|
||||||
|
environment: 'default',
|
||||||
|
type: ApiTokenType.CLIENT,
|
||||||
|
project: '*',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
next();
|
||||||
|
});
|
||||||
|
|
||||||
app.use(`${basePath}/api`, (req, res, next) => {
|
app.use(`${basePath}/api`, (req, res, next) => {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
if (req.user) {
|
if (req.user) {
|
||||||
@ -57,4 +76,5 @@ function demoAuthentication(
|
|||||||
.end();
|
.end();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export default demoAuthentication;
|
export default demoAuthentication;
|
||||||
|
Loading…
Reference in New Issue
Block a user