mirror of
https://github.com/nodemailer/wildduck.git
synced 2025-10-24 12:46:56 +08:00
allow setting appId for u2f
This commit is contained in:
parent
1a7a754522
commit
8f41dd0a8e
4 changed files with 22 additions and 8 deletions
|
|
@ -30,6 +30,9 @@ module.exports = (db, server, userHandler) => {
|
||||||
.lowercase()
|
.lowercase()
|
||||||
.length(24)
|
.length(24)
|
||||||
.required(),
|
.required(),
|
||||||
|
appId: Joi.string()
|
||||||
|
.empty('')
|
||||||
|
.uri(),
|
||||||
sess: Joi.string().max(255),
|
sess: Joi.string().max(255),
|
||||||
ip: Joi.string().ip({
|
ip: Joi.string().ip({
|
||||||
version: ['ipv4', 'ipv6'],
|
version: ['ipv4', 'ipv6'],
|
||||||
|
|
@ -225,6 +228,9 @@ module.exports = (db, server, userHandler) => {
|
||||||
.lowercase()
|
.lowercase()
|
||||||
.length(24)
|
.length(24)
|
||||||
.required(),
|
.required(),
|
||||||
|
appId: Joi.string()
|
||||||
|
.empty('')
|
||||||
|
.uri(),
|
||||||
sess: Joi.string().max(255),
|
sess: Joi.string().max(255),
|
||||||
ip: Joi.string().ip({
|
ip: Joi.string().ip({
|
||||||
version: ['ipv4', 'ipv6'],
|
version: ['ipv4', 'ipv6'],
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,10 @@ module.exports = (db, server, userHandler) => {
|
||||||
protocol: Joi.string().default('API'),
|
protocol: Joi.string().default('API'),
|
||||||
scope: Joi.string().default('master'),
|
scope: Joi.string().default('master'),
|
||||||
|
|
||||||
|
appId: Joi.string()
|
||||||
|
.empty('')
|
||||||
|
.uri(),
|
||||||
|
|
||||||
sess: Joi.string().max(255),
|
sess: Joi.string().max(255),
|
||||||
ip: Joi.string().ip({
|
ip: Joi.string().ip({
|
||||||
version: ['ipv4', 'ipv6'],
|
version: ['ipv4', 'ipv6'],
|
||||||
|
|
@ -106,6 +110,10 @@ module.exports = (db, server, userHandler) => {
|
||||||
ip: result.value.ip
|
ip: result.value.ip
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (result.value.appId) {
|
||||||
|
meta.appId = result.value.appId;
|
||||||
|
}
|
||||||
|
|
||||||
userHandler.authenticate(result.value.username, result.value.password, result.value.scope, meta, (err, authData) => {
|
userHandler.authenticate(result.value.username, result.value.password, result.value.scope, meta, (err, authData) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
res.json({
|
res.json({
|
||||||
|
|
|
||||||
|
|
@ -408,7 +408,7 @@ class UserHandler {
|
||||||
if (!enabled2fa.includes('u2f') || !userData.u2f || !userData.u2f.keyHandle) {
|
if (!enabled2fa.includes('u2f') || !userData.u2f || !userData.u2f.keyHandle) {
|
||||||
return done(null, false);
|
return done(null, false);
|
||||||
}
|
}
|
||||||
this.generateU2fAuthRequest(userData._id, userData.u2f.keyHandle, done);
|
this.generateU2fAuthRequest(userData._id, userData.u2f.keyHandle, meta.appId, done);
|
||||||
};
|
};
|
||||||
|
|
||||||
let authSuccess = (...args) => {
|
let authSuccess = (...args) => {
|
||||||
|
|
@ -730,10 +730,10 @@ class UserHandler {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
generateU2fAuthRequest(user, keyHandle, callback) {
|
generateU2fAuthRequest(user, keyHandle, appId, callback) {
|
||||||
let authRequest;
|
let authRequest;
|
||||||
try {
|
try {
|
||||||
authRequest = u2f.request(config.u2f.appId, keyHandle);
|
authRequest = u2f.request(appId || config.u2f.appId, keyHandle);
|
||||||
} catch (E) {
|
} catch (E) {
|
||||||
log.error('U2F', 'U2FFAIL request id=%s error=%s', user, E.message);
|
log.error('U2F', 'U2FFAIL request id=%s error=%s', user, E.message);
|
||||||
}
|
}
|
||||||
|
|
@ -1959,10 +1959,10 @@ class UserHandler {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
setupU2f(user, data, callback) {
|
setupU2f(user, data, appId, callback) {
|
||||||
let registrationRequest;
|
let registrationRequest;
|
||||||
try {
|
try {
|
||||||
registrationRequest = u2f.request(config.u2f.appId);
|
registrationRequest = u2f.request(data.appId || config.u2f.appId);
|
||||||
} catch (E) {
|
} catch (E) {
|
||||||
log.error('U2F', 'U2FFAIL request id=%s error=%s', user, E.message);
|
log.error('U2F', 'U2FFAIL request id=%s error=%s', user, E.message);
|
||||||
}
|
}
|
||||||
|
|
@ -2297,7 +2297,7 @@ class UserHandler {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.generateU2fAuthRequest(user, userData.u2f.keyHandle, (err, authRequest) => {
|
this.generateU2fAuthRequest(user, userData.u2f.keyHandle, data.appId, (err, authRequest) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@
|
||||||
"mailsplit": "4.2.0",
|
"mailsplit": "4.2.0",
|
||||||
"mobileconfig": "2.1.0",
|
"mobileconfig": "2.1.0",
|
||||||
"mongo-cursor-pagination-node6": "5.0.0",
|
"mongo-cursor-pagination-node6": "5.0.0",
|
||||||
"mongodb": "3.0.10",
|
"mongodb": "3.1.0",
|
||||||
"mongodb-extended-json": "1.10.0",
|
"mongodb-extended-json": "1.10.0",
|
||||||
"node-forge": "0.7.5",
|
"node-forge": "0.7.5",
|
||||||
"nodemailer": "4.6.7",
|
"nodemailer": "4.6.7",
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
"tlds": "1.203.1",
|
"tlds": "1.203.1",
|
||||||
"u2f": "0.1.3",
|
"u2f": "0.1.3",
|
||||||
"utf7": "1.0.2",
|
"utf7": "1.0.2",
|
||||||
"uuid": "3.2.1",
|
"uuid": "3.3.0",
|
||||||
"wild-config": "1.3.6"
|
"wild-config": "1.3.6"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue