|
@@ -324,6 +324,16 @@ module.exports = (crowi) => {
|
|
|
const csrf = require('../../middlewares/csrf')(crowi);
|
|
const csrf = require('../../middlewares/csrf')(crowi);
|
|
|
const apiV3FormValidator = require('../../middlewares/apiv3-form-validator')(crowi);
|
|
const apiV3FormValidator = require('../../middlewares/apiv3-form-validator')(crowi);
|
|
|
|
|
|
|
|
|
|
+ async function updateAndReloadStrategySettings(authId, params) {
|
|
|
|
|
+ const { configManager, passportService } = crowi;
|
|
|
|
|
+
|
|
|
|
|
+ // update config without publishing ConfigPubsubMessage
|
|
|
|
|
+ await configManager.updateConfigsInTheSameNamespace('crowi', params, true);
|
|
|
|
|
+
|
|
|
|
|
+ await passportService.setupStrategyById(authId);
|
|
|
|
|
+ await passportService.publishUpdatedMessage(authId);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* @swagger
|
|
* @swagger
|
|
|
*
|
|
*
|
|
@@ -489,9 +499,7 @@ module.exports = (crowi) => {
|
|
|
const enableParams = { [`security:passport-${authId}:isEnabled`]: isEnabled };
|
|
const enableParams = { [`security:passport-${authId}:isEnabled`]: isEnabled };
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
- await crowi.configManager.updateConfigsInTheSameNamespace('crowi', enableParams);
|
|
|
|
|
-
|
|
|
|
|
- await crowi.passportService.setupStrategyById(authId);
|
|
|
|
|
|
|
+ await updateAndReloadStrategySettings(authId, enableParams);
|
|
|
|
|
|
|
|
const responseParams = {
|
|
const responseParams = {
|
|
|
[`security:passport-${authId}:isEnabled`]: await crowi.configManager.getConfig('crowi', `security:passport-${authId}:isEnabled`),
|
|
[`security:passport-${authId}:isEnabled`]: await crowi.configManager.getConfig('crowi', `security:passport-${authId}:isEnabled`),
|
|
@@ -613,8 +621,8 @@ module.exports = (crowi) => {
|
|
|
'security:registrationWhiteList': req.body.registrationWhiteList,
|
|
'security:registrationWhiteList': req.body.registrationWhiteList,
|
|
|
};
|
|
};
|
|
|
try {
|
|
try {
|
|
|
- await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
|
|
|
|
|
- await crowi.passportService.setupStrategyById('local');
|
|
|
|
|
|
|
+ await updateAndReloadStrategySettings('local', requestParams);
|
|
|
|
|
+
|
|
|
const localSettingParams = {
|
|
const localSettingParams = {
|
|
|
registrationMode: await crowi.configManager.getConfig('crowi', 'security:registrationMode'),
|
|
registrationMode: await crowi.configManager.getConfig('crowi', 'security:registrationMode'),
|
|
|
registrationWhiteList: await crowi.configManager.getConfig('crowi', 'security:registrationWhiteList'),
|
|
registrationWhiteList: await crowi.configManager.getConfig('crowi', 'security:registrationWhiteList'),
|
|
@@ -666,8 +674,8 @@ module.exports = (crowi) => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
- await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
|
|
|
|
|
- await crowi.passportService.setupStrategyById('ldap');
|
|
|
|
|
|
|
+ await updateAndReloadStrategySettings('ldap', requestParams);
|
|
|
|
|
+
|
|
|
const securitySettingParams = {
|
|
const securitySettingParams = {
|
|
|
serverUrl: await crowi.configManager.getConfig('crowi', 'security:passport-ldap:serverUrl'),
|
|
serverUrl: await crowi.configManager.getConfig('crowi', 'security:passport-ldap:serverUrl'),
|
|
|
isUserBind: await crowi.configManager.getConfig('crowi', 'security:passport-ldap:isUserBind'),
|
|
isUserBind: await crowi.configManager.getConfig('crowi', 'security:passport-ldap:isUserBind'),
|
|
@@ -757,8 +765,8 @@ module.exports = (crowi) => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
- await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
|
|
|
|
|
- await crowi.passportService.setupStrategyById('saml');
|
|
|
|
|
|
|
+ await updateAndReloadStrategySettings('saml', requestParams);
|
|
|
|
|
+
|
|
|
const securitySettingParams = {
|
|
const securitySettingParams = {
|
|
|
missingMandatoryConfigKeys: await crowi.passportService.getSamlMissingMandatoryConfigKeys(),
|
|
missingMandatoryConfigKeys: await crowi.passportService.getSamlMissingMandatoryConfigKeys(),
|
|
|
samlEntryPoint: await crowi.configManager.getConfigFromDB('crowi', 'security:passport-saml:entryPoint'),
|
|
samlEntryPoint: await crowi.configManager.getConfigFromDB('crowi', 'security:passport-saml:entryPoint'),
|
|
@@ -826,8 +834,8 @@ module.exports = (crowi) => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
- await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
|
|
|
|
|
- await crowi.passportService.setupStrategyById('oidc');
|
|
|
|
|
|
|
+ await updateAndReloadStrategySettings('oidc', requestParams);
|
|
|
|
|
+
|
|
|
const securitySettingParams = {
|
|
const securitySettingParams = {
|
|
|
oidcProviderName: await crowi.configManager.getConfig('crowi', 'security:passport-oidc:providerName'),
|
|
oidcProviderName: await crowi.configManager.getConfig('crowi', 'security:passport-oidc:providerName'),
|
|
|
oidcIssuerHost: await crowi.configManager.getConfig('crowi', 'security:passport-oidc:issuerHost'),
|
|
oidcIssuerHost: await crowi.configManager.getConfig('crowi', 'security:passport-oidc:issuerHost'),
|
|
@@ -884,8 +892,8 @@ module.exports = (crowi) => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
- await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
|
|
|
|
|
- await crowi.passportService.setupStrategyById('basic');
|
|
|
|
|
|
|
+ await updateAndReloadStrategySettings('basic', requestParams);
|
|
|
|
|
+
|
|
|
const securitySettingParams = {
|
|
const securitySettingParams = {
|
|
|
isSameUsernameTreatedAsIdenticalUser: await crowi.configManager.getConfig('crowi', 'security:passport-basic:isSameUsernameTreatedAsIdenticalUser'),
|
|
isSameUsernameTreatedAsIdenticalUser: await crowi.configManager.getConfig('crowi', 'security:passport-basic:isSameUsernameTreatedAsIdenticalUser'),
|
|
|
};
|
|
};
|
|
@@ -927,8 +935,8 @@ module.exports = (crowi) => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
- await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
|
|
|
|
|
- await crowi.passportService.setupStrategyById('google');
|
|
|
|
|
|
|
+ await updateAndReloadStrategySettings('google', requestParams);
|
|
|
|
|
+
|
|
|
const securitySettingParams = {
|
|
const securitySettingParams = {
|
|
|
googleClientId: await crowi.configManager.getConfig('crowi', 'security:passport-google:clientId'),
|
|
googleClientId: await crowi.configManager.getConfig('crowi', 'security:passport-google:clientId'),
|
|
|
googleClientSecret: await crowi.configManager.getConfig('crowi', 'security:passport-google:clientSecret'),
|
|
googleClientSecret: await crowi.configManager.getConfig('crowi', 'security:passport-google:clientSecret'),
|
|
@@ -972,8 +980,8 @@ module.exports = (crowi) => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
- await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
|
|
|
|
|
- await crowi.passportService.setupStrategyById('github');
|
|
|
|
|
|
|
+ await updateAndReloadStrategySettings('github', requestParams);
|
|
|
|
|
+
|
|
|
const securitySettingParams = {
|
|
const securitySettingParams = {
|
|
|
githubClientId: await crowi.configManager.getConfig('crowi', 'security:passport-github:clientId'),
|
|
githubClientId: await crowi.configManager.getConfig('crowi', 'security:passport-github:clientId'),
|
|
|
githubClientSecret: await crowi.configManager.getConfig('crowi', 'security:passport-github:clientSecret'),
|
|
githubClientSecret: await crowi.configManager.getConfig('crowi', 'security:passport-github:clientSecret'),
|
|
@@ -1022,8 +1030,8 @@ module.exports = (crowi) => {
|
|
|
requestParams = removeNullPropertyFromObject(requestParams);
|
|
requestParams = removeNullPropertyFromObject(requestParams);
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
- await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
|
|
|
|
|
- await crowi.passportService.setupStrategyById('twitter');
|
|
|
|
|
|
|
+ await updateAndReloadStrategySettings('twitter', requestParams);
|
|
|
|
|
+
|
|
|
const securitySettingParams = {
|
|
const securitySettingParams = {
|
|
|
twitterConsumerId: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:consumerKey'),
|
|
twitterConsumerId: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:consumerKey'),
|
|
|
twitterConsumerSecret: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:consumerSecret'),
|
|
twitterConsumerSecret: await crowi.configManager.getConfig('crowi', 'security:passport-twitter:consumerSecret'),
|