|
|
@ -1,4 +1,5 @@ |
|
|
|
var express = require('express'); |
|
|
|
var csurf = require('csurf'); |
|
|
|
var router = express.Router(); |
|
|
|
var util = require('util'); |
|
|
|
var moment = require('moment'); |
|
|
@ -14,6 +15,8 @@ var coins = require("./../app/coins.js"); |
|
|
|
var config = require("./../app/config.js"); |
|
|
|
var coreApi = require("./../app/api/coreApi.js"); |
|
|
|
|
|
|
|
const forceCsrf = csurf({ ignoreMethods: [] }); |
|
|
|
|
|
|
|
router.get("/", function(req, res) { |
|
|
|
if (req.session.host == null || req.session.host.trim() == "") { |
|
|
|
if (req.cookies['rpc-host']) { |
|
|
@ -815,7 +818,7 @@ router.post("/rpc-terminal", function(req, res) { |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
router.get("/rpc-browser", function(req, res) { |
|
|
|
router.get("/rpc-browser", function(req, res, next) { |
|
|
|
if (!config.demoSite) { |
|
|
|
var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress; |
|
|
|
var match = config.ipWhitelistForRpcCommands.exec(ip); |
|
|
@ -883,26 +886,30 @@ router.get("/rpc-browser", function(req, res) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
console.log("Executing RPC '" + req.query.method + "' with params: [" + argValues + "]"); |
|
|
|
forceCsrf(req, res, err => { |
|
|
|
if (err) return next(err); |
|
|
|
|
|
|
|
console.log("Executing RPC '" + req.query.method + "' with params: [" + argValues + "]"); |
|
|
|
|
|
|
|
client.command([{method:req.query.method, parameters:argValues}], function(err3, result3, resHeaders3) { |
|
|
|
console.log("RPC Response: err=" + err3 + ", result=" + result3 + ", headers=" + resHeaders3); |
|
|
|
client.command([{method:req.query.method, parameters:argValues}], function(err3, result3, resHeaders3) { |
|
|
|
console.log("RPC Response: err=" + err3 + ", result=" + result3 + ", headers=" + resHeaders3); |
|
|
|
|
|
|
|
if (err3) { |
|
|
|
if (result3) { |
|
|
|
res.locals.methodResult = {error:("" + err3), result:result3}; |
|
|
|
if (err3) { |
|
|
|
if (result3) { |
|
|
|
res.locals.methodResult = {error:("" + err3), result:result3}; |
|
|
|
|
|
|
|
} else { |
|
|
|
res.locals.methodResult = {error:("" + err3)}; |
|
|
|
} |
|
|
|
} else if (result3) { |
|
|
|
res.locals.methodResult = result3; |
|
|
|
|
|
|
|
} else { |
|
|
|
res.locals.methodResult = {error:("" + err3)}; |
|
|
|
res.locals.methodResult = {"Error":"No response from node."}; |
|
|
|
} |
|
|
|
} else if (result3) { |
|
|
|
res.locals.methodResult = result3; |
|
|
|
|
|
|
|
} else { |
|
|
|
res.locals.methodResult = {"Error":"No response from node."}; |
|
|
|
} |
|
|
|
|
|
|
|
res.render("browser"); |
|
|
|
res.render("browser"); |
|
|
|
}); |
|
|
|
}); |
|
|
|
} else { |
|
|
|
res.render("browser"); |
|
|
|