- public static getUIServerImplementation(
- applicationProtocol: ApplicationProtocol,
- options?: ServerOptions
- ): AbstractUIServer | null {
- if (!UIServiceUtils.isLoopback(options?.host)) {
- console.warn(
- chalk.magenta(
- 'Loopback address not detected in UI server configuration. This is not recommended.'
- )
- );
+ public static getUIServerImplementation (
+ uiServerConfiguration: UIServerConfiguration
+ ): AbstractUIServer {
+ if (
+ uiServerConfiguration.authentication?.enabled === true &&
+ !Object.values(AuthenticationType).includes(uiServerConfiguration.authentication.type)
+ ) {
+ throw new BaseError(
+ `Unknown authentication type '${uiServerConfiguration.authentication.type}' in '${ConfigurationSection.uiServer}' configuration section`
+ )
+ }
+ if (
+ uiServerConfiguration.type === ApplicationProtocol.HTTP &&
+ uiServerConfiguration.authentication?.enabled === true &&
+ uiServerConfiguration.authentication.type === AuthenticationType.PROTOCOL_BASIC_AUTH
+ ) {
+ throw new BaseError(
+ `'${uiServerConfiguration.authentication.type}' authentication type with application protocol type '${uiServerConfiguration.type}' is not supported in '${ConfigurationSection.uiServer}' configuration section`
+ )
+ }
+ if (
+ uiServerConfiguration.authentication?.enabled !== true &&
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ !isLoopback(uiServerConfiguration.options!.host!)
+ ) {
+ const logMsg = `Non loopback address in '${ConfigurationSection.uiServer}' configuration section without authentication enabled. This is not recommended`
+ logger.warn(`${UIServerFactory.logPrefix()} ${logMsg}`)
+ console.warn(chalk.yellow(logMsg))