mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-03 14:03:57 +00:00
getAuthProvider
This commit is contained in:
@@ -178,7 +178,7 @@ function detectEnvAuthProvider() {
|
|||||||
return 'none';
|
return 'none';
|
||||||
}
|
}
|
||||||
|
|
||||||
function createAuthProvider() {
|
function createEnvAuthProvider() {
|
||||||
const authProvider = detectEnvAuthProvider();
|
const authProvider = detectEnvAuthProvider();
|
||||||
switch (authProvider) {
|
switch (authProvider) {
|
||||||
case 'oauth':
|
case 'oauth':
|
||||||
@@ -192,7 +192,18 @@ function createAuthProvider() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let authProvider = createEnvAuthProvider();
|
||||||
|
|
||||||
|
function getAuthProvider() {
|
||||||
|
return authProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setAuthProvider(value) {
|
||||||
|
authProvider = value;
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
detectEnvAuthProvider,
|
detectEnvAuthProvider,
|
||||||
createAuthProvider,
|
getAuthProvider,
|
||||||
|
setAuthProvider,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const { getLogger } = require('dbgate-tools');
|
|||||||
const AD = require('activedirectory2').promiseWrapper;
|
const AD = require('activedirectory2').promiseWrapper;
|
||||||
const crypto = require('crypto');
|
const crypto = require('crypto');
|
||||||
const { getTokenSecret, getTokenLifetime } = require('../auth/authCommon');
|
const { getTokenSecret, getTokenLifetime } = require('../auth/authCommon');
|
||||||
const { createAuthProvider } = require('../auth/authProvider');
|
const { getAuthProvider } = require('../auth/authProvider');
|
||||||
const { create } = require('lodash');
|
const { create } = require('lodash');
|
||||||
|
|
||||||
const logger = getLogger('auth');
|
const logger = getLogger('auth');
|
||||||
@@ -23,7 +23,7 @@ function unauthorizedResponse(req, res, text) {
|
|||||||
function authMiddleware(req, res, next) {
|
function authMiddleware(req, res, next) {
|
||||||
const SKIP_AUTH_PATHS = ['/config/get', '/auth/oauth-token', '/auth/login', '/stream'];
|
const SKIP_AUTH_PATHS = ['/config/get', '/auth/oauth-token', '/auth/login', '/stream'];
|
||||||
|
|
||||||
if (!createAuthProvider().shouldAuthorizeApi()) {
|
if (!getAuthProvider().shouldAuthorizeApi()) {
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
let skipAuth = !!SKIP_AUTH_PATHS.find(x => req.path == getExpressPath(x));
|
let skipAuth = !!SKIP_AUTH_PATHS.find(x => req.path == getExpressPath(x));
|
||||||
@@ -54,13 +54,13 @@ function authMiddleware(req, res, next) {
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
oauthToken_meta: true,
|
oauthToken_meta: true,
|
||||||
async oauthToken(params) {
|
async oauthToken(params) {
|
||||||
return createAuthProvider().oauthToken(params);
|
return getAuthProvider().oauthToken(params);
|
||||||
},
|
},
|
||||||
login_meta: true,
|
login_meta: true,
|
||||||
async login(params) {
|
async login(params) {
|
||||||
const { login, password } = params;
|
const { login, password } = params;
|
||||||
|
|
||||||
return createAuthProvider().login(login, password);
|
return getAuthProvider().login(login, password);
|
||||||
},
|
},
|
||||||
|
|
||||||
authMiddleware,
|
authMiddleware,
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ const AsyncLock = require('async-lock');
|
|||||||
const currentVersion = require('../currentVersion');
|
const currentVersion = require('../currentVersion');
|
||||||
const platformInfo = require('../utility/platformInfo');
|
const platformInfo = require('../utility/platformInfo');
|
||||||
const connections = require('../controllers/connections');
|
const connections = require('../controllers/connections');
|
||||||
const { createAuthProvider } = require('../auth/authProvider');
|
const { getAuthProvider } = require('../auth/authProvider');
|
||||||
|
|
||||||
const lock = new AsyncLock();
|
const lock = new AsyncLock();
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ module.exports = {
|
|||||||
|
|
||||||
get_meta: true,
|
get_meta: true,
|
||||||
async get(_params, req) {
|
async get(_params, req) {
|
||||||
const authProvider = createAuthProvider();
|
const authProvider = getAuthProvider();
|
||||||
const login = authProvider.getCurrentLogin(req);
|
const login = authProvider.getCurrentLogin(req);
|
||||||
const permissions = authProvider.getCurrentPermissions(req);
|
const permissions = authProvider.getCurrentPermissions(req);
|
||||||
const isLoginForm = authProvider.isLoginForm();
|
const isLoginForm = authProvider.isLoginForm();
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ const platformInfo = require('./utility/platformInfo');
|
|||||||
const getExpressPath = require('./utility/getExpressPath');
|
const getExpressPath = require('./utility/getExpressPath');
|
||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
const { getLogger } = require('dbgate-tools');
|
const { getLogger } = require('dbgate-tools');
|
||||||
const { createAuthProvider } = require('./auth/authProvider');
|
const { getAuthProvider } = require('./auth/authProvider');
|
||||||
|
|
||||||
const logger = getLogger('main');
|
const logger = getLogger('main');
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ function start() {
|
|||||||
if (process.env.BASIC_AUTH) {
|
if (process.env.BASIC_AUTH) {
|
||||||
async function authorizer(username, password, cb) {
|
async function authorizer(username, password, cb) {
|
||||||
try {
|
try {
|
||||||
const resp = await createAuthProvider().login(username, password);
|
const resp = await getAuthProvider().login(username, password);
|
||||||
if (resp.accessToken) {
|
if (resp.accessToken) {
|
||||||
cb(null, true);
|
cb(null, true);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
const { compilePermissions, testPermission } = require('dbgate-tools');
|
const { compilePermissions, testPermission } = require('dbgate-tools');
|
||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
const { createAuthProvider } = require('../auth/authProvider');
|
const { getAuthProvider } = require('../auth/authProvider');
|
||||||
|
|
||||||
const cachedPermissions = {};
|
const cachedPermissions = {};
|
||||||
|
|
||||||
@@ -10,7 +10,7 @@ function hasPermission(tested, req) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const permissions = createAuthProvider().getCurrentPermissions(req);
|
const permissions = getAuthProvider().getCurrentPermissions(req);
|
||||||
|
|
||||||
if (!cachedPermissions[permissions]) {
|
if (!cachedPermissions[permissions]) {
|
||||||
cachedPermissions[permissions] = compilePermissions(permissions);
|
cachedPermissions[permissions] = compilePermissions(permissions);
|
||||||
|
|||||||
Reference in New Issue
Block a user