This commit is contained in:
Ryan Tharp 2020-08-17 04:02:29 +00:00
commit dc5f888d3b
5 changed files with 27 additions and 10 deletions

View File

@ -354,7 +354,7 @@ function fixUpMiddleware(app) {
// fix up runMiddleware
app.runMiddleware = function(path, options, callback) {
// console.log('app.runMiddleware', path)
//console.log('app.runMiddleware', path)
if (callback) callback = _.once(callback);
if (typeof options == "function") {
callback = options;
@ -373,7 +373,7 @@ function fixUpMiddleware(app) {
new_req = createReq(path, options);
}
new_res = createRes(callback);
// console.log('running', new_req.path, 'against app')
//console.log('running', new_req.path, 'against app')
this(new_req, new_res);
};
@ -624,6 +624,7 @@ module.exports = (app, prefix) => {
}, res);
});
// proxy version
app.post(prefix + '/loki/v1/secure_rpc', async (req, res) => {
res.start = Date.now()
//console.log('got secure_rpc', req.path);
@ -632,6 +633,7 @@ module.exports = (app, prefix) => {
//console.log('secure_rpc body', req.body, typeof req.body);
if (!req.body.cipherText64) {
console.warn('no cipherText64')
return sendresponse({
meta: {
code: 400,
@ -656,6 +658,7 @@ module.exports = (app, prefix) => {
const ephemeralPubKey64 = req.headers['x-loki-file-server-ephemeral-key'];
//console.log('ephemeralPubKey', ephemeralPubKey64);
if (!ephemeralPubKey64 || ephemeralPubKey64.length < 32) {
console.warn('proxy ephemeralPubKey64 error', ephemeralPubKey64)
return sendresponse({
meta: {
code: 400,
@ -700,6 +703,7 @@ module.exports = (app, prefix) => {
try {
decrypted = await libsignal.crypto.decrypt(symKey, ciphertext, iv);
} catch(e) {
console.warn('proxy decrypt error')
return sendresponse({
meta: {
code: 400,
@ -712,6 +716,7 @@ module.exports = (app, prefix) => {
try {
requestObj = JSON.parse(decrypted.toString());
} catch(e) {
console.warn('proxy parse unencrypted error')
sendresponse({
meta: {
code: 400,
@ -721,6 +726,7 @@ module.exports = (app, prefix) => {
return;
}
//console.log('JSON decoded', requestObj);
const fakeReq = await createFakeReq(req, requestObj)
/*

View File

@ -74,7 +74,7 @@ const updateUserAccess = () => {
for(const pubKey in disk_config.globals) {
const access = disk_config.globals[pubKey];
// translate pubKey to id of user
cache.getUserID(pubKey, (user, err) => {
cache.getUserID(pubKey, (err, user) => {
// only if user has registered
if (user) {
user_access[user.id] = access;

View File

@ -27,7 +27,15 @@ function sendResponse(json, resp) {
function validUser(token, res, cb) {
return new Promise(function(resolve, rej) {
if (!token) {
return resolve(false);
console.error('lib.dialect::validUser - getUserClientByToken - no token', token);
const resObj={
meta: {
code: 401,
error_message: 'Authorization required'
}
};
sendResponse(resObj, res);
return resolve();
}
dispatcher.getUserClientByToken(token, (err, usertoken) => {
if (err) {
@ -38,10 +46,10 @@ function validUser(token, res, cb) {
error_message: err
}
};
console.error('lib.dialect::validUser - error trying to verify token:', token);
sendResponse(resObj, res);
return resolve();
}
//console.log('lib.dialect::validUser - usertoken', JSON.parse(JSON.stringify(usertoken)))
if (usertoken === null) {
// could be they didn't log in through a server restart
const resObj={

2
server

@ -1 +1 @@
Subproject commit 6bf7f1d4a3bcc8c4ad68a0adcf7477603f464025
Subproject commit 5ea702e060d034b970bc0c30fc0c18685a67b07c

View File

@ -61,9 +61,12 @@ const proxyAdmin = require('../server/dataaccess/dataaccess.proxy-admin');
// fake dispatcher that only implements what we need
proxyAdmin.dispatcher = {
// ignore local user updates
updateUser: (user, ts, cb) => { cb(user); },
updateUser: (user, ts, cb) => {
console.log('test.js::proxyAdmin.dispatcher.updateUser')
cb(false, user);
},
// ignore local message updates
setMessage: (message, cb) => { if (cb) cb(message); },
setMessage: (message, cb) => { if (cb) cb(false, message); },
}
// backward compatible
if (proxyAdmin.start) {
@ -222,14 +225,14 @@ const selectModToken = async (channelId) => {
/*
if (res.response && res.response.data === null) {
console.log('need to create a token for this moderator')
cache.getUserID(modPubKey, (user, err) => {
cache.getUserID(modPubKey, (err, user) => {
if (err) console.error('getUserID err', err)
if (!user || !user.id) {
console.warn('No such moderator user object for', modPubKey);
// create user...
process.exit();
}
cache.createOrFindUserToken(user.id, 'messenger', ADN_SCOPES, (tokenObj, err) => {
cache.createOrFindUserToken(user.id, 'messenger', ADN_SCOPES, (err, tokenObj) => {
if (err) console.error('createOrFindUserToken err', err)
console.log('tokenObj', tokenObj);
})