feat: support ua in blacklist and whitelist

This commit is contained in:
DIYgod
2021-03-07 10:06:24 +08:00
parent 3001b85d10
commit 5298f845f2
4 changed files with 19 additions and 6 deletions

View File

@@ -20,7 +20,7 @@ describe('access-control', () => {
it(`blacklist`, async () => {
const key = '1L0veRSSHub';
const code = md5('/test/2' + key);
process.env.BLACKLIST = '/test/1,233.233.233.233';
process.env.BLACKLIST = 'est/1,233.233.233.,black';
process.env.ACCESS_KEY = key;
server = require('../../lib/index');
const request = supertest(server);
@@ -31,12 +31,18 @@ describe('access-control', () => {
const response12 = await request.get('/test/1').set('X-Forwarded-For', '233.233.233.233');
checkBlock(response12);
const response13 = await request.get('/test/1').set('user-agent', 'blackua');
checkBlock(response13);
const response21 = await request.get('/test/2');
expect(response21.status).toBe(200);
const response22 = await request.get('/test/2').set('X-Forwarded-For', '233.233.233.233');
checkBlock(response22);
const response23 = await request.get('/test/2').set('user-agent', 'blackua');
checkBlock(response23);
// wrong key/code, not on blacklist
const response311 = await request.get(`/test/2?key=wrong+${key}`);
expect(response311.status).toBe(200);
@@ -62,7 +68,7 @@ describe('access-control', () => {
it(`whitelist`, async () => {
const key = '1L0veRSSHub';
const code = md5('/test/2' + key);
process.env.WHITELIST = '/test/1,233.233.233.233';
process.env.WHITELIST = 'est/1,233.233.233.,white';
process.env.ACCESS_KEY = key;
server = require('../../lib/index');
const request = supertest(server);
@@ -79,12 +85,18 @@ describe('access-control', () => {
const response12 = await request.get('/test/1').set('X-Forwarded-For', '233.233.233.233');
expect(response12.status).toBe(200);
const response13 = await request.get('/test/1').set('user-agent', 'whiteua');
expect(response13.status).toBe(200);
const response21 = await request.get('/test/2');
checkBlock(response21);
const response22 = await request.get('/test/2').set('X-Forwarded-For', '233.233.233.233');
expect(response22.status).toBe(200);
const response23 = await request.get('/test/2').set('user-agent', 'whiteua');
expect(response23.status).toBe(200);
// wrong key/code, not on whitelist
const response311 = await request.get(`/test/2?code=wrong+${code}`);
checkBlock(response311);