Compare commits

..
7 Commits
2 changed files with 25 additions and 23 deletions
+17 -16
View File
@@ -82,11 +82,11 @@ class RateLimits {
// Determine if the call is an external or internal API call.
const isInternal = _this.checkInternalIp(req)
console.log(`isInternal: ${isInternal}`)
// console.log(`isInternal: ${isInternal}`)
// Determine if the call originates from another computer on the intranet.
const isWhitelistOrigin = _this.isInWhitelist(req)
console.log('isWhitelistOrigin: ', isWhitelistOrigin)
// console.log('isWhitelistOrigin: ', isWhitelistOrigin)
// Handle the use case of internally-generated requests.
if (isInternal) {
@@ -94,15 +94,15 @@ class RateLimits {
// the usrObj in the body.
if (req.body && req.body.usrObj) {
if (req.body.usrObj.proLimit) {
console.log('Internal call, basic auth, skipping rate limits.')
// console.log('Internal call, basic auth, skipping rate limits.')
// If this is an internal call that originated from a user using
// Basic Authentication, then skip rate-limits.
return next()
} else {
console.log(
'Internal call, applying rate limits. Using JWT if available.'
)
// console.log(
// 'Internal call, applying rate limits. Using JWT if available.'
// )
// Determine if user has exceeded their rate limits. Pass in the
// JWT token if one exists.
@@ -130,10 +130,10 @@ class RateLimits {
// and avoid this code path. This code path is 'pooled': all users
// share the same rate limits. Even at 1000 RPM, this pool will get
// exhausted easily.
const warnMsg =
'Internal call. req.body.usrObj does not exist. Applying high-speed internal rate limits.'
console.log(warnMsg)
wlogger.info(warnMsg)
// const warnMsg =
// 'Internal call. req.body.usrObj does not exist. Applying high-speed internal rate limits.'
// console.log(warnMsg)
// wlogger.info(warnMsg)
const defaultPayload = {
id: '98.76.54.32',
@@ -168,9 +168,9 @@ class RateLimits {
//
} else {
// Handle the normal use-case of external requests
console.log(
'External call, applying rate limits. Using JWT if available.'
)
// console.log(
// 'External call, applying rate limits. Using JWT if available.'
// )
// For calls originating from a whitelist domain, apply a high-RPM
// JWT token to the call.
@@ -233,7 +233,7 @@ class RateLimits {
pointsToConsume = decoded.pointsToConsume
}
console.log(`rate limit key: ${key}`)
// console.log(`rate limit key: ${key}`)
// This function will throw an error if the user exceeds the rate limit.
// The 429 error response is handled by the catch().
@@ -244,7 +244,7 @@ class RateLimits {
// Signal that the user has not exceeded their rate limits.
return false
} catch (err) {
console.log('err: ', err)
// console.log('err: ', err)
const rateLimit = Math.floor(POINTS_PER_MINUTE / pointsToConsume)
@@ -307,7 +307,8 @@ class RateLimits {
// Retrieve the origin.
const origin = req.get('origin')
console.log(`origin: ${origin}`)
if (!process.env.TEST) console.log('origin:', origin)
// If the origin is not determinable, return false.
if (!origin) return false
+8 -7
View File
@@ -135,9 +135,9 @@ describe('#rate-routelimit', () => {
// assert.equal(result.id, '123.456.789.10')
assert.property(result, 'email')
// assert.equal(result.email, 'test@bchtest.net')
assert.property(result, 'pointsToConsume')
// assert.property(result, 'pointsToConsume')
// assert.equal(result.pointsToConsume, config.anonRateLimit)
assert.property(result, 'duration')
// assert.property(result, 'duration')
// assert.equal(result.duration, 30)
assert.property(result, 'exp')
})
@@ -309,10 +309,10 @@ describe('#rate-routelimit', () => {
let val
for (let i = 0; i < 25; i++) {
console.log('req.locals: ', req.locals)
// console.log('req.locals: ', req.locals)
val = await uut.applyRateLimits(req, res, next)
}
console.log('val: ', val)
// console.log('val: ', val)
assert.property(val, 'error')
assert.include(
@@ -446,7 +446,7 @@ describe('#rate-routelimit', () => {
// Generate a new JWT token for the test.
const jwtPayload = {
id: '5dade3f5739e6c0ff034b9a1',
pointsToConsume: 10
pointsToConsume: 100
}
const jwtToken = uut.generateJwtToken(jwtPayload)
@@ -460,7 +460,7 @@ describe('#rate-routelimit', () => {
for (let i = 0; i < 120; i++) {
val = await uut.applyRateLimits(req, res, next)
}
console.log('val: ', val)
// console.log('val: ', val)
assert.property(val, 'error')
assert.include(
@@ -470,11 +470,12 @@ describe('#rate-routelimit', () => {
assert.equal(
res.locals.pointsToConsume,
10,
100,
'User JWT rate limits applied'
)
} catch (err) {
console.log('err: ', err)
assert.fail('Unexpected result')
}
})