mirror of
https://github.com/openziti/zrok.git
synced 2025-08-16 19:01:16 +02:00
re-enable oauth and basic auth; logging lint (#893)
This commit is contained in:
@ -21,7 +21,7 @@
|
||||
"version": "1.0.0",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@openziti/ziti-sdk-nodejs": "^0.19.0",
|
||||
"@openziti/ziti-sdk-nodejs": "^0.20.0",
|
||||
"express": "^4.21.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
@ -7,11 +7,13 @@ import {
|
||||
loadRoot,
|
||||
PROXY_BACKEND_MODE,
|
||||
PUBLIC_SHARE_MODE,
|
||||
setLogLevel,
|
||||
ShareRequest
|
||||
} from "@openziti/zrok";
|
||||
|
||||
const httpServer = async () => {
|
||||
let root = loadRoot();
|
||||
setLogLevel(0);
|
||||
await init(root)
|
||||
.catch((err: Error) => {
|
||||
console.log(err);
|
||||
|
@ -11,6 +11,7 @@ import {
|
||||
listener,
|
||||
loadRoot,
|
||||
PRIVATE_SHARE_MODE,
|
||||
setLogLevel,
|
||||
ShareRequest,
|
||||
TCP_TUNNEL_BACKEND_MODE,
|
||||
write
|
||||
@ -20,6 +21,7 @@ import readlineSync = require('readline-sync');
|
||||
const copyto = async () => {
|
||||
let text = readlineSync.question("enter some text: ");
|
||||
let root = loadRoot();
|
||||
setLogLevel(0);
|
||||
await init(root)
|
||||
.catch((err: Error) => {
|
||||
console.log(err);
|
||||
@ -40,6 +42,7 @@ const copyto = async () => {
|
||||
|
||||
const pastefrom = async (shareToken: string) => {
|
||||
let root = loadRoot();
|
||||
setLogLevel(0);
|
||||
await init(root).catch((err: Error) => {
|
||||
console.log(err);
|
||||
return process.exit(1);
|
||||
|
@ -1,8 +1,9 @@
|
||||
import {Root} from "./environment";
|
||||
import {
|
||||
AuthUser,
|
||||
ShareApi,
|
||||
ShareRequest as ApiShareRequest,
|
||||
ShareRequestBackendModeEnum,
|
||||
ShareRequestBackendModeEnum, ShareRequestOauthProviderEnum,
|
||||
ShareRequestShareModeEnum,
|
||||
UnshareRequest
|
||||
} from "../api";
|
||||
@ -16,23 +17,32 @@ export const PROXY_BACKEND_MODE: BackendMode = "proxy";
|
||||
export const TCP_TUNNEL_BACKEND_MODE: BackendMode = "tcpTunnel";
|
||||
export const UDP_TUNNEL_BACKEND_MODE: BackendMode = "udpTunnel";
|
||||
|
||||
export type AuthScheme = string;
|
||||
export const AUTH_SCHEME_NONE = "none";
|
||||
export const AUTH_SCHEME_BASIC = "basic";
|
||||
export const AUTH_SCHEME_OAUTH = "oauth";
|
||||
|
||||
export type OauthProvider = string;
|
||||
export const OAUTH_PROVIDER_GOOGLE = "google";
|
||||
export const OAUTH_PROVIDER_GITHUB = "github";
|
||||
|
||||
export type PermissionMode = string;
|
||||
export const OPEN_PERMISSION_MODE = "open";
|
||||
export const CLOSED_PERMISSION_MODE = "closed";
|
||||
|
||||
export class ShareRequest {
|
||||
reserved: boolean;
|
||||
uniqueName: string|undefined;
|
||||
uniqueName: string | undefined;
|
||||
backendMode: BackendMode;
|
||||
shareMode: ShareMode;
|
||||
target: string;
|
||||
frontends: string[]|undefined;
|
||||
basicAuth: string[]|undefined;
|
||||
oauthProvider: string|undefined;
|
||||
oauthEmailAddressPatterns: string[]|undefined;
|
||||
oauthAuthorizationCheckInterval: string|undefined;
|
||||
frontends: string[] | undefined;
|
||||
basicAuth: string[] | undefined;
|
||||
oauthProvider: string | undefined;
|
||||
oauthEmailAddressPatterns: string[] | undefined;
|
||||
oauthAuthorizationCheckInterval: string | undefined;
|
||||
permissionMode: PermissionMode;
|
||||
accessGrants: string[]|undefined;
|
||||
accessGrants: string[] | undefined;
|
||||
|
||||
constructor(shareMode: ShareMode, backendMode: BackendMode, target: string) {
|
||||
this.reserved = false;
|
||||
@ -52,9 +62,9 @@ export class ShareRequest {
|
||||
|
||||
export class Share {
|
||||
shareToken: string;
|
||||
frontendEndpoints: string[]|undefined;
|
||||
frontendEndpoints: string[] | undefined;
|
||||
|
||||
constructor(shareToken: string, frontendEndpoints: string[]|undefined) {
|
||||
constructor(shareToken: string, frontendEndpoints: string[] | undefined) {
|
||||
this.shareToken = shareToken;
|
||||
this.frontendEndpoints = frontendEndpoints;
|
||||
}
|
||||
@ -105,22 +115,44 @@ const toPrivateApiShareRequest = (root: Root, request: ShareRequest): ApiShareRe
|
||||
shareMode: ShareRequestShareModeEnum.Private,
|
||||
backendMode: toApiBackendMode(request.backendMode),
|
||||
backendProxyEndpoint: request.target,
|
||||
authScheme: "none",
|
||||
authScheme: AUTH_SCHEME_NONE,
|
||||
permissionMode: CLOSED_PERMISSION_MODE,
|
||||
};
|
||||
}
|
||||
|
||||
const toPublicApiShareRequest = (root: Root, request: ShareRequest): ApiShareRequest => {
|
||||
return {
|
||||
let out: ApiShareRequest = {
|
||||
envZId: root.environment?.zId,
|
||||
shareMode: ShareRequestShareModeEnum.Public,
|
||||
frontendSelection: request.frontends,
|
||||
backendMode: toApiBackendMode(request.backendMode),
|
||||
backendProxyEndpoint: request.target,
|
||||
authScheme: "none",
|
||||
authScheme: AUTH_SCHEME_NONE,
|
||||
};
|
||||
|
||||
if(request.oauthProvider !== undefined) {
|
||||
out.authScheme = AUTH_SCHEME_OAUTH;
|
||||
out.oauthProvider = toApiOauthProvider(request.oauthProvider);
|
||||
out.oauthEmailDomains = request.oauthEmailAddressPatterns;
|
||||
out.oauthAuthorizationCheckInterval = request.oauthAuthorizationCheckInterval;
|
||||
|
||||
} else if(request.basicAuth?.length! > 0) {
|
||||
out.authScheme = AUTH_SCHEME_BASIC;
|
||||
for(let pair in request.basicAuth) {
|
||||
let tokens = pair.split(":");
|
||||
if(tokens.length === 2) {
|
||||
if(out.authUsers === undefined) {
|
||||
out.authUsers = new Array<AuthUser>();
|
||||
}
|
||||
out.authUsers.push({username: tokens[0].trim(), password: tokens[1].trim()})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
const toApiBackendMode = (mode: BackendMode): ShareRequestBackendModeEnum|undefined => {
|
||||
const toApiBackendMode = (mode: BackendMode): ShareRequestBackendModeEnum | undefined => {
|
||||
switch(mode) {
|
||||
case PROXY_BACKEND_MODE:
|
||||
return ShareRequestBackendModeEnum.Proxy;
|
||||
@ -132,3 +164,14 @@ const toApiBackendMode = (mode: BackendMode): ShareRequestBackendModeEnum|undefi
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
const toApiOauthProvider = (provider: OauthProvider): ShareRequestOauthProviderEnum | undefined => {
|
||||
switch(provider) {
|
||||
case OAUTH_PROVIDER_GITHUB:
|
||||
return ShareRequestOauthProviderEnum.Github;
|
||||
case OAUTH_PROVIDER_GOOGLE:
|
||||
return ShareRequestOauthProviderEnum.Google;
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user