@financialforcedev/orizuru-auth
Version:
Salesforce authentication for Heroku Node applications.
50 lines • 6.92 kB
JavaScript
;
/*
* Copyright (c) 2019, FinancialForce.com, inc
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the FinancialForce.com, inc nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
Object.defineProperty(exports, "__esModule", { value: true });
const __1 = require("../../..");
/**
* Helper function for a failed request.
*
* Emits a denied event and calls next with the access denied error.
*
* @fires EVENT_DENIED
* @param app The Orizuru server instance.
* @param error The error that caused the failed request.
* @param req The HTTP request.
* @param res The HTTP response.
* @param next Callback argument to the middleware function.
*/
function fail(app, error, req, res, next) {
const message = `Access denied to: ${req.ip ? req.ip : 'unknown'}. Error: ${error.message}`;
const accessDeniedError = new Error(message);
app.emit(__1.EVENT_DENIED, message);
// Rather than returning a 401 directly, we need to call next with the error.
// This should then find the appropriate error handler.
next(accessDeniedError);
}
exports.fail = fail;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbmRleC9taWRkbGV3YXJlL2NvbW1vbi9mYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHOztBQVFILGdDQUF3QztBQUV4Qzs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQWdCLElBQUksQ0FBQyxHQUFvQixFQUFFLEtBQVksRUFBRSxHQUFZLEVBQUUsR0FBYSxFQUFFLElBQWtCO0lBRXZHLE1BQU0sT0FBTyxHQUFHLHFCQUFxQixHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLFlBQVksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVGLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFN0MsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRWhDLDZFQUE2RTtJQUM3RSx1REFBdUQ7SUFDdkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFekIsQ0FBQztBQVhELG9CQVdDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOSwgRmluYW5jaWFsRm9yY2UuY29tLCBpbmNcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbixcbiAqICAgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OlxuICpcbiAqIC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLFxuICogICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuICogLSBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsXG4gKiAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb25cbiAqICAgICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gKiAtIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIEZpbmFuY2lhbEZvcmNlLmNvbSwgaW5jIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9yc1xuICogICAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dFxuICogICAgICBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uXG4gKlxuICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBcIkFTIElTXCIgQU5EXG4gKiAgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFU1xuICogIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMXG4gKiAgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsXG4gKiAgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTXG4gKiAgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZXG4gKiAgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpXG4gKiAgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIG1pZGRsZXdhcmUvY29tbW9uL2ZhaWxcbiAqL1xuXG5pbXBvcnQgeyBOZXh0RnVuY3Rpb24sIFJlcXVlc3QsIFJlc3BvbnNlIH0gZnJvbSAnQGZpbmFuY2lhbGZvcmNlZGV2L29yaXp1cnUnO1xuXG5pbXBvcnQgeyBFVkVOVF9ERU5JRUQgfSBmcm9tICcuLi8uLi8uLic7XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIGZvciBhIGZhaWxlZCByZXF1ZXN0LlxuICpcbiAqIEVtaXRzIGEgZGVuaWVkIGV2ZW50IGFuZCBjYWxscyBuZXh0IHdpdGggdGhlIGFjY2VzcyBkZW5pZWQgZXJyb3IuXG4gKlxuICogQGZpcmVzIEVWRU5UX0RFTklFRFxuICogQHBhcmFtIGFwcCBUaGUgT3JpenVydSBzZXJ2ZXIgaW5zdGFuY2UuXG4gKiBAcGFyYW0gZXJyb3IgVGhlIGVycm9yIHRoYXQgY2F1c2VkIHRoZSBmYWlsZWQgcmVxdWVzdC5cbiAqIEBwYXJhbSByZXEgVGhlIEhUVFAgcmVxdWVzdC5cbiAqIEBwYXJhbSByZXMgVGhlIEhUVFAgcmVzcG9uc2UuXG4gKiBAcGFyYW0gbmV4dCBDYWxsYmFjayBhcmd1bWVudCB0byB0aGUgbWlkZGxld2FyZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZhaWwoYXBwOiBPcml6dXJ1LklTZXJ2ZXIsIGVycm9yOiBFcnJvciwgcmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pIHtcblxuXHRjb25zdCBtZXNzYWdlID0gYEFjY2VzcyBkZW5pZWQgdG86ICR7cmVxLmlwID8gcmVxLmlwIDogJ3Vua25vd24nfS4gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gO1xuXHRjb25zdCBhY2Nlc3NEZW5pZWRFcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKTtcblxuXHRhcHAuZW1pdChFVkVOVF9ERU5JRUQsIG1lc3NhZ2UpO1xuXG5cdC8vIFJhdGhlciB0aGFuIHJldHVybmluZyBhIDQwMSBkaXJlY3RseSwgd2UgbmVlZCB0byBjYWxsIG5leHQgd2l0aCB0aGUgZXJyb3IuXG5cdC8vIFRoaXMgc2hvdWxkIHRoZW4gZmluZCB0aGUgYXBwcm9wcmlhdGUgZXJyb3IgaGFuZGxlci5cblx0bmV4dChhY2Nlc3NEZW5pZWRFcnJvcik7XG5cbn1cbiJdfQ==