修改 - 修复ftpd的验证bug

This commit is contained in:
suwings 2018-04-16 11:22:52 +08:00
parent 6f787f4692
commit bdbb620fff
3 changed files with 20 additions and 12 deletions

View File

@ -74,7 +74,7 @@ class UserCenter {
this.deleteUser(username);
}
loginCheck(username, password, truecb, falsecb, md5key) {
loginCheck(username, password, truecb, falsecb, md5key, notSafeLogin = false) {
if (this.userList.hasOwnProperty(username) && this.userList[username] != undefined) {
let loginUser = this.userList[username];
try {
@ -89,17 +89,18 @@ class UserCenter {
loginUser.updateLastDate();
// 目前只准许 登陆时使用 md5传码方式 ,不准传输明文
if (md5key) {
if (md5key && !notSafeLogin) {
let userMd5 = loginUser.getPasswordMD5();
let md5Passworded = md5(userMd5 + md5key);
return md5Passworded == password ? truecb && truecb(loginUser) : falsecb && falsecb();
}
// 一般模式
// 禁止使用一般登录模式
// if (loginUser.isPassword(password)) {
// truecb && truecb(loginUser);
// return true;
// }
// 一般模式 供ftp 等登录
if (notSafeLogin && loginUser.isPassword(password)) {
truecb && truecb(loginUser);
return true;
}
}
falsecb && falsecb();
return false;

View File

@ -43,7 +43,7 @@ ftpServerInterface.initFTPServerListener({
let userName = arrName[0];
if (serverModel.ServerManager().isExist(serverName) && permission.isCanServer(userName, serverName)) {
try {
return userModel.loginUser(userName, password);
return userModel.beliveLogin(userName, password);
} catch (e) {
return false;
}

View File

@ -1,4 +1,7 @@
const { USER_SAVE_PATH, User } = require('../core/User/User');
const {
USER_SAVE_PATH,
User
} = require('../core/User/User');
const UserCenter = require('../core/User/UserCenter');
const fs = require('fs');
@ -13,8 +16,12 @@ module.exports.registerUser = (username, password) => {
}
module.exports.loginUser = (username, password, truecb, falsecb,enkey) => {
return userCenters.loginCheck(username, password, truecb, falsecb,enkey);
module.exports.loginUser = (username, password, truecb, falsecb, enkey) => {
return userCenters.loginCheck(username, password, truecb, falsecb, enkey, false);
}
module.exports.beliveLogin = (username, password, truecb, falsecb) => {
return userCenters.loginCheck(username, password, truecb, falsecb, null, true);
}