From e489e188f4224625fb1c6bab89ab1b6a09799add Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=9A=E7=84=B6?= Date: Mon, 15 Aug 2016 17:48:47 +0800 Subject: [PATCH] Add test cases for the proxy, and do some tiny fixes. the fixes are: 1. add "content-type" in headers for when dealing with localresponse 2. make a more accurate tip for throttle rate when lower than 1 3. make the crtMgr funcionality a more independent one 4. uppercase the request header before sending it out update the tip --- .babelrc | 6 + .eslintrc.js | 245 ++++++++++ .gitignore | 3 +- jasmine.json | 12 + lib/certMgr.js | 217 +++------ lib/requestHandler.js | 37 +- lib/rule_default.js | 6 +- lib/util.js | 62 ++- package.json | 23 +- proxy.js | 27 +- test/data/headers.js | 28 ++ test/data/test.css | 3 + test/data/test.eot | Bin 0 -> 5320 bytes test/data/test.js | 3 + test/data/test.json | 3 + test/data/test.png | Bin 0 -> 105758 bytes test/data/test.svg | 14 + test/data/test.ttf | Bin 0 -> 5152 bytes test/data/test.webp | Bin 0 -> 45982 bytes test/data/test.woff | Bin 0 -> 2960 bytes test/data/test.woff2 | Bin 0 -> 2400 bytes test/no_rule_spec.js | 459 ++++++++++++++++++ test/no_rule_websocket_spec.js | 144 ++++++ test/rule_shouldUseLocalResponse_spec.js | 57 +++ test/server/server.js | 274 +++++++++++ test/server/startServer.js | 3 + test/test.sh | 7 +- test/test_rules/shouldUseLocalResponseRule.js | 22 + test/util/CommonUtil.js | 153 ++++++ test/util/HttpUtil.js | 262 ++++++++++ test/util/ProxyServerUtil.js | 65 +++ 31 files changed, 1948 insertions(+), 187 deletions(-) create mode 100644 .babelrc create mode 100644 .eslintrc.js create mode 100644 jasmine.json create mode 100644 test/data/headers.js create mode 100644 test/data/test.css create mode 100755 test/data/test.eot create mode 100644 test/data/test.js create mode 100644 test/data/test.json create mode 100755 test/data/test.png create mode 100755 test/data/test.svg create mode 100755 test/data/test.ttf create mode 100644 test/data/test.webp create mode 100755 test/data/test.woff create mode 100755 test/data/test.woff2 create mode 100644 test/no_rule_spec.js create mode 100644 test/no_rule_websocket_spec.js create mode 100644 test/rule_shouldUseLocalResponse_spec.js create mode 100644 test/server/server.js create mode 100644 test/server/startServer.js create mode 100644 test/test_rules/shouldUseLocalResponseRule.js create mode 100644 test/util/CommonUtil.js create mode 100644 test/util/HttpUtil.js create mode 100644 test/util/ProxyServerUtil.js diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..3aa0747 --- /dev/null +++ b/.babelrc @@ -0,0 +1,6 @@ +{ + "presets": [ + "es2015", + "stage-0" + ] +} \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..5d96e44 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,245 @@ +module.exports = { + // http://eslint.org/docs/rules/ + + "ecmaFeatures": { + "arrowFunctions": false, // enable arrow functions + "binaryLiterals": false, // enable binary literals + "blockBindings": false, // enable let and const (aka block bindings) + "classes": false, // enable classes + "defaultParams": false, // enable default function parameters + "destructuring": false, // enable destructuring + "forOf": false, // enable for-of loops + "generators": false, // enable generators + "modules": false, // enable modules and global strict mode + "objectLiteralComputedProperties": false, // enable computed object literal property names + "objectLiteralDuplicateProperties": false, // enable duplicate object literal properties in strict mode + "objectLiteralShorthandMethods": false, // enable object literal shorthand methods + "objectLiteralShorthandProperties": false, // enable object literal shorthand properties + "octalLiterals": false, // enable octal literals + "regexUFlag": false, // enable the regular expression u flag + "regexYFlag": false, // enable the regular expression y flag + "restParams": false, // enable the rest parameters + "spread": false, // enable the spread operator + "superInFunctions": false, // enable super references inside of functions + "templateStrings": false, // enable template strings + "unicodeCodePointEscapes": false, // enable code point escapes + "globalReturn": false, // allow return statements in the global scope + "jsx": false // enable JSX + }, + "parser": "babel-eslint", + + "env": { + "browser": true, // browser global variables. + "node": false, // Node.js global variables and Node.js-specific rules. + "worker": false, // web workers global variables. + "amd": true, // defines require() and define() as global variables as per the amd spec. + "mocha": false, // adds all of the Mocha testing global variables. + "jasmine": true, // adds all of the Jasmine testing global variables for version 1.3 and 2.0. + "phantomjs": false, // phantomjs global variables. + "jquery": false, // jquery global variables. + "prototypejs": false, // prototypejs global variables. + "shelljs": false, // shelljs global variables. + "meteor": false, // meteor global variables. + "mongo": false, // mongo global variables. + "applescript": false, // applescript global variables. + "es6": true, // enable all ECMAScript 6 features except for modules. + }, + + "globals": { + "goog": true, + "module": true, + "exports": true, + "__dirname": true, + "process": true + }, + + "plugins": [ + // e.g. "react" (must run `npm install eslint-plugin-react` first) + ], + + "rules": { + + // Possible Errors + "comma-dangle": 0, // disallow trailing commas in object literals + "no-cond-assign": 0, // disallow assignment in conditional expressions + "no-console": 0, // disallow use of console (off by default in the node environment) + "no-constant-condition": 0, // disallow use of constant expressions in conditions + "no-control-regex": 0, // disallow control characters in regular expressions + "no-debugger": 0, // disallow use of debugger + "no-dupe-args": 0, // disallow duplicate arguments in functions + "no-dupe-keys": 0, // disallow duplicate keys when creating object literals + "no-duplicate-case": 0, // disallow a duplicate case label + "no-empty-character-class": 0, // disallow the use of empty character classes in regular expressions + "no-empty": 0, // disallow empty statements + "no-ex-assign": 0, // disallow assigning to the exception in a catch block + "no-extra-boolean-cast": 0, // disallow double-negation boolean casts in a boolean context + "no-extra-parens": 0, // disallow unnecessary parentheses (off by default) + "no-extra-semi": 1, // disallow unnecessary semicolons + "no-func-assign": 0, // disallow overwriting functions written as function declarations + "no-inner-declarations": 2, // disallow function or variable declarations in nested blocks + "no-invalid-regexp": 0, // disallow invalid regular expression strings in the RegExp constructor + "no-irregular-whitespace": 0, // disallow irregular whitespace outside of strings and comments + "no-negated-in-lhs": 0, // disallow negation of the left operand of an in expression + "no-obj-calls": 0, // disallow the use of object properties of the global object (Math and JSON) as functions + "no-regex-spaces": 0, // disallow multiple spaces in a regular expression literal + "no-reserved-keys": 0, // disallow reserved words being used as object literal keys (off by default) + "no-sparse-arrays": 0, // disallow sparse arrays + "no-unreachable": 0, // disallow unreachable statements after a return, throw, continue, or break statement + "use-isnan": 0, // disallow comparisons with the value NaN + "valid-jsdoc": 0, // Ensure JSDoc comments are valid (off by default) + "valid-typeof": 0, // Ensure that the results of typeof are compared against a valid string + "no-unexpected-multiline": 0, // Avoid code that looks like two expressions but is actually one (off by default) + + + // Best Practices + "accessor-pairs": 0, // enforces getter/setter pairs in objects (off by default) + "block-scoped-var": 0, // treat var statements as if they were block scoped (off by default) + "complexity": 0, // specify the maximum cyclomatic complexity allowed in a program (off by default) + "consistent-return": 0, // require return statements to either always or never specify values + "curly": 2, // specify curly brace conventions for all control statements + "default-case": 0, // require default case in switch statements (off by default) + "dot-notation": 0, // encourages use of dot notation whenever possible + "dot-location": 0, // enforces consistent newlines before or after dots (off by default) + "eqeqeq": 0, // require the use of === and !== + "guard-for-in": 0, // make sure for-in loops have an if statement (off by default) + "no-alert": 0, // disallow the use of alert, confirm, and prompt + "no-caller": 0, // disallow use of arguments.caller or arguments.callee + "no-div-regex": 0, // disallow division operators explicitly at beginning of regular expression (off by default) + "no-else-return": 0, // disallow else after a return in an if (off by default) + "no-empty-label": 0, // disallow use of labels for anything other then loops and switches + "no-eq-null": 0, // disallow comparisons to null without a type-checking operator (off by default) + "no-eval": 2, // disallow use of eval() + "no-extend-native": 2, // disallow adding to native types + "no-extra-bind": 0, // disallow unnecessary function binding + "no-fallthrough": 0, // disallow fallthrough of case statements + "no-floating-decimal": 0, // disallow the use of leading or trailing decimal points in numeric literals (off by default) + "no-implied-eval": 0, // disallow use of eval()-like methods + "no-iterator": 0, // disallow usage of __iterator__ property + "no-labels": 0, // disallow use of labeled statements + "no-lone-blocks": 0, // disallow unnecessary nested blocks + "no-loop-func": 0, // disallow creation of functions within loops + "no-multi-spaces": 0, // disallow use of multiple spaces + "no-multi-str": 0, // disallow use of multiline strings + "no-native-reassign": 0, // disallow reassignments of native objects + "no-new-func": 0, // disallow use of new operator for Function object + "no-new-wrappers": 2, // disallows creating new instances of String, Number, and Boolean + "no-new": 0, // disallow use of new operator when not part of the assignment or comparison + "no-octal-escape": 0, // disallow use of octal escape sequences in string literals, such as var foo = "Copyright \251"; + "no-octal": 0, // disallow use of octal literals + "no-param-reassign": 0, // disallow reassignment of function parameters (off by default) + "no-process-env": 0, // disallow use of process.env (off by default) + "no-proto": 0, // disallow usage of __proto__ property + "no-redeclare": 0, // disallow declaring the same variable more then once + "no-return-assign": 0, // disallow use of assignment in return statement + "no-script-url": 0, // disallow use of javascript: urls + "no-self-compare": 0, // disallow comparisons where both sides are exactly the same (off by default) + "no-sequences": 0, // disallow use of comma operator + "no-throw-literal": 0, // restrict what can be thrown as an exception (off by default) + "no-unused-expressions": 0, // disallow usage of expressions in statement position + "no-void": 0, // disallow use of void operator (off by default) + "no-warning-comments": 0, // disallow usage of configurable warning terms in comments, e.g. TODO or FIXME (off by default) + "no-with": 2, // disallow use of the with statement + "radix": 0, // require use of the second argument for parseInt() (off by default) + "vars-on-top": 0, // requires to declare all vars on top of their containing scope (off by default) + "wrap-iife": 0, // require immediate function invocation to be wrapped in parentheses (off by default) + "yoda": 0, // require or disallow Yoda conditions + + + // Strict Mode + "strict": 0, // controls location of Use Strict Directives + + + // Variables + "no-catch-shadow": 0, // disallow the catch clause parameter name being the same as a variable in the outer scope (off by default in the node environment) + "no-delete-var": 0, // disallow deletion of variables + "no-label-var": 0, // disallow labels that share a name with a variable + "no-shadow": 0, // disallow declaration of variables already declared in the outer scope + "no-shadow-restricted-names": 0, // disallow shadowing of names such as arguments + "no-undef": 2, // disallow use of undeclared variables unless mentioned in a /*global */ block + "no-undef-init": 0, // disallow use of undefined when initializing variables + "no-undefined": 0, // disallow use of undefined variable (off by default) + "no-unused-vars": 0, // disallow declaration of variables that are not used in the code + "no-use-before-define": 0, // disallow use of variables before they are defined + + + // Node.js + "handle-callback-err": 0, // enforces error handling in callbacks (off by default) (on by default in the node environment) + "no-mixed-requires": 0, // disallow mixing regular variable and require declarations (off by default) (on by default in the node environment) + "no-new-require": 0, // disallow use of new operator with the require function (off by default) (on by default in the node environment) + "no-path-concat": 0, // disallow string concatenation with __dirname and __filename (off by default) (on by default in the node environment) + "no-process-exit": 0, // disallow process.exit() (on by default in the node environment) + "no-restricted-modules": 0, // restrict usage of specified node modules (off by default) + "no-sync": 0, // disallow use of synchronous methods (off by default) + + + // Stylistic Issues + "array-bracket-spacing": [2, "never"], // enforce spacing inside array brackets (off by default) + "brace-style": 0, // enforce one true brace style (off by default) + "camelcase": 0, // require camel case names + "comma-spacing": 0, // enforce spacing before and after comma + "comma-style": 0, // enforce one true comma style (off by default) + "computed-property-spacing": 0, // require or disallow padding inside computed properties (off by default) + "consistent-this": 0, // enforces consistent naming when capturing the current execution context (off by default) + "eol-last": 0, // enforce newline at the end of file, with no multiple empty lines + "func-names": 0, // require function expressions to have a name (off by default) + "func-style": 0, // enforces use of function declarations or expressions (off by default) + "indent": [2, 4], // this option sets a specific tab width for your code (off by default) + "key-spacing": 0, // enforces spacing between keys and values in object literal properties + "lines-around-comment": 0, // enforces empty lines around comments (off by default) + "linebreak-style": 0, // disallow mixed 'LF' and 'CRLF' as linebreaks (off by default) + "max-nested-callbacks": 0, // specify the maximum depth callbacks can be nested (off by default) + "new-cap": 0, // require a capital letter for constructors + "new-parens": 0, // disallow the omission of parentheses when invoking a constructor with no arguments + "new-parens": 0, // disallow the omission of parentheses when invoking a constructor with no arguments + "newline-after-var": 0, // allow/disallow an empty newline after var statement (off by default) + "no-array-constructor": 2, // disallow use of the Array constructor + "no-continue": 0, // disallow use of the continue statement (off by default) + "no-inline-comments": 0, // disallow comments inline after code (off by default) + "no-lonely-if": 0, // disallow if as the only statement in an else block (off by default) + "no-mixed-spaces-and-tabs": 2, // disallow mixed spaces and tabs for indentation + "no-multiple-empty-lines": 0, // disallow multiple empty lines (off by default) + "no-nested-ternary": 0, // disallow nested ternary expressions (off by default) + "no-new-object": 2, // disallow use of the Object constructor + "no-spaced-func": 0, // disallow space between function identifier and application + "no-ternary": 0, // disallow the use of ternary operators (off by default) + "no-trailing-spaces": 0, // disallow trailing whitespace at the end of lines + "no-underscore-dangle": 0, // disallow dangling underscores in identifiers + "object-curly-spacing": [2, "always"], // require or disallow padding inside curly braces (off by default) + "one-var": 0, // allow just one var statement per function (off by default) + "operator-assignment": 0, // require assignment operator shorthand where possible or prohibit it entirely (off by default) + "operator-linebreak": 0, // enforce operators to be placed before or after line breaks (off by default) + "padded-blocks": 0, // enforce padding within blocks (off by default) + "quote-props": 0, // require quotes around object literal property names (off by default) + "quotes": 0, // specify whether double or single quotes should be used + "semi-spacing": 0, // enforce spacing before and after semicolons + "semi": [2, "always"], // require or disallow use of semicolons instead of ASI + "sort-vars": 0, // sort variables within the same declaration block (off by default) + "space-after-keywords": 0, // require a space after certain keywords (off by default) + "space-before-blocks": 0, // require or disallow space before blocks (off by default) + "space-before-function-paren": 0, // require or disallow space before function opening parenthesis (off by default) + "space-in-parens": 0, // require or disallow spaces inside parentheses (off by default) + "space-infix-ops": 0, // require spaces around operators + "space-return-throw-case": 0, // require a space after return, throw, and case + "space-unary-ops": 0, // require or disallow spaces before/after unary operators (words on by default, nonwords off by default) + "spaced-comment": 0, // require or disallow a space immediately following the // or /* in a comment (off by default) + "wrap-regex": 0, // require regex literals to be wrapped in parentheses (off by default) + + + // ECMAScript 6 + "constructor-super": 0, // verify super() callings in constructors (off by default) + "generator-star-spacing": 0, // enforce the spacing around the * in generator functions (off by default) + "no-this-before-super": 0, // disallow to use this/super before super() calling in constructors (off by default) + "no-var": 0, // require let or const instead of var (off by default) + "object-shorthand": 0, // require method and property shorthand syntax for object literals (off by default) + "prefer-const": 0, // suggest using of const declaration for variables that are never modified after declared (off by default) + + + // Legacy + "max-depth": 0, // specify the maximum depth that blocks can be nested (off by default) + "max-len": [1, 120, 2], // specify the maximum length of a line in your program (off by default) + "max-params": 0, // limits the number of parameters that can be used in the function declaration. (off by default) + "max-statements": 0, // specify the maximum number of statement allowed in a function (off by default) + "no-bitwise": 0, // disallow use of bitwise operators (off by default) + "no-plusplus": 0 // disallow use of unary operators, ++ and -- (off by default) + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 1e7469e..2fa5ecd 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,5 @@ coverage .grunt build/Release node_modules -.lock-wscript \ No newline at end of file +.lock-wscript +temp \ No newline at end of file diff --git a/jasmine.json b/jasmine.json new file mode 100644 index 0000000..3216038 --- /dev/null +++ b/jasmine.json @@ -0,0 +1,12 @@ +{ + "spec_dir": "test", + "spec_files": [ + "**/*[sS]pec.js" + ], + "helpers": [ + "../node_modules/babel-register/lib/node.js", + "../node_modules/babel-polyfill/dist/polyfill.js" + ], + "stopSpecOnExpectationFailure": false, + "random": false +} diff --git a/lib/certMgr.js b/lib/certMgr.js index 50b12f1..711c2ed 100644 --- a/lib/certMgr.js +++ b/lib/certMgr.js @@ -1,174 +1,81 @@ -var exec = require('child_process').exec, - spawn = require('child_process').spawn, - path = require("path"), - fs = require("fs"), - os = require("os"), - color = require('colorful'), - readline = require('readline'), - util = require('./util'), - logUtil = require("./log"), - certGenerator = require("./certGenerator"), - asyncTask = require("async-task-mgr"); +var logUtil = require('./log'); +var util = require('./util'); +var color = require('colorful'); +var EasyCert = require('node-easy-cert'); +var exec = require('child_process').exec; +var path = require('path'); +var readline = require('readline'); -var isWin = /^win/.test(process.platform), - certDir = path.join(util.getUserHome(),"/.anyproxy_certs/"), - rootCAcrtFilePath = path.join(certDir,"rootCA.crt"), - rootCAkeyFilePath = path.join(certDir,"rootCA.key"), - createCertTaskMgr = new asyncTask(); +var isWin = /^win/.test(process.platform); +var options = { + rootDirPath: util.getUserHome() + '/.anyproxy_certs', + defaultCertAttrs: [ + { name: 'countryName', value: 'CN' }, + { name: 'organizationName', value: 'AnyProxy' }, + { shortName: 'ST', value: 'SH' }, + { shortName: 'OU', value: 'AnyProxy SSL Proxy' } + ] +}; -if(!fs.existsSync(certDir)){ - try{ - fs.mkdirSync(certDir,0777); - }catch(e){ - logUtil.printLog("===========", logUtil.T_ERR); - logUtil.printLog("failed to create cert dir ,please create one by yourself - " + certDir, logUtil.T_ERR); - logUtil.printLog("this error will not block main thread unless you use https-related features in anyproxy", logUtil.T_ERR); - logUtil.printLog("===========", logUtil.T_ERR); - } -} +var easyCert = new EasyCert(options); +var crtMgr = util.merge({}, easyCert); -var cache_rootCACrtFileContent, cache_rootCAKeyFileContent; -function getCertificate(hostname,certCallback){ - checkRootCA(); - var keyFile = path.join(certDir , "__hostname.key".replace(/__hostname/,hostname) ), - crtFile = path.join(certDir , "__hostname.crt".replace(/__hostname/,hostname) ); - - if(!cache_rootCACrtFileContent || !cache_rootCAKeyFileContent){ - cache_rootCACrtFileContent = fs.readFileSync(rootCAcrtFilePath, {encoding: 'utf8'}); - cache_rootCAKeyFileContent = fs.readFileSync(rootCAkeyFilePath, {encoding: 'utf8'}); - } - - createCertTaskMgr.addTask(hostname,function(callback){ - if(!fs.existsSync(keyFile) || !fs.existsSync(crtFile)){ - try{ - var result = certGenerator.generateCertsForHostname(hostname, { - cert: cache_rootCACrtFileContent, - key: cache_rootCAKeyFileContent - }); - fs.writeFileSync(keyFile, result.privateKey); - fs.writeFileSync(crtFile, result.certificate); - callback(null, result.privateKey, result.certificate); - - }catch(e){ - callback(e); - } - }else{ - callback(null , fs.readFileSync(keyFile) , fs.readFileSync(crtFile)); +// catch specified error, such as ROOT_CA_NOT_EXISTS +crtMgr.getCertificate = function (host, cb) { + easyCert.getCertificate(host, (error, keyContent, crtContent) => { + if (error === 'ROOT_CA_NOT_EXISTS') { + util.showRootInstallTip(); + process.exit(0); + return; } - },function(err,keyContent,crtContent){ - if(!err){ - certCallback(null ,keyContent,crtContent); - }else{ - certCallback(err); - } + cb(error, keyContent, crtContent); }); -} +}; -function createCert(hostname,callback){ - checkRootCA(); +// set default common name of the cert +crtMgr.generateRootCA = function (cb) { + doGenerate(false); - var cmd = cmd_genCert + " __host __path".replace(/__host/,hostname).replace(/__path/,certDir); - exec(cmd,{ cwd : certDir },function(err,stdout,stderr){ - if(err){ - callback && callback(new Error("error when generating certificate"),null); - }else{ - var tipText = "certificate created for __HOST".replace(/__HOST/,hostname); - logUtil.printLog(color.yellow(color.bold("[internal https]")) + color.yellow(tipText)) ; - callback(null); - } - }); -} + function doGenerate(overwrite) { + const rootOptions = { + commonName: 'AnyProxy', + overwrite: !!overwrite + }; -function clearCerts(cb){ - if(isWin){ - exec("del * /q",{cwd : certDir},cb); - }else{ - exec("rm *.key *.csr *.crt *.srl",{cwd : certDir},cb); - } -} - -function isRootCAFileExists(){ - return (fs.existsSync(rootCAcrtFilePath) && fs.existsSync(rootCAkeyFilePath)); -} - -var rootCAExists = false; -function checkRootCA(){ - if(rootCAExists) return; - if(!isRootCAFileExists()){ - logUtil.printLog(color.red("can not find rootCA.crt or rootCA.key"), logUtil.T_ERR); - logUtil.printLog(color.red("you may generate one by the following methods"), logUtil.T_ERR); - logUtil.printLog(color.red("\twhen using globally : anyproxy --root"), logUtil.T_ERR); - logUtil.printLog(color.red("\twhen using as a module : require(\"anyproxy\").generateRootCA();"), logUtil.T_ERR); - logUtil.printLog(color.red("\tmore info : https://github.com/alibaba/anyproxy/wiki/How-to-config-https-proxy"), logUtil.T_ERR); - process.exit(0); - } else{ - rootCAExists = true; - } -} - -function generateRootCA(){ - - if(isRootCAFileExists()){ - logUtil.printLog(color.yellow("rootCA exists at " + certDir)); - var rl = readline.createInterface({ - input : process.stdin, - output: process.stdout - }); - - rl.question("do you really want to generate a new one ?)(yes/NO)", function(answer) { - if(/yes/i.test(answer)){ - startGenerating(); - }else{ - logUtil.printLog("will not generate a new one"); - process.exit(0); + easyCert.generateRootCA(rootOptions, (error, keyPath, crtPath) => { + if (!error) { + const certDir = path.dirname(keyPath); + logUtil.printLog(color.cyan('The cert is generated at "' + certDir + '"')); + if(isWin){ + exec("start .",{ cwd : certDir }); + }else{ + exec("open .",{ cwd : certDir }); + } } - rl.close(); - }); - }else{ - startGenerating(); - } + if (error === 'ROOT_CA_EXISTED') { + var rl = readline.createInterface({ + input : process.stdin, + output: process.stdout + }); - function startGenerating(){ - //clear old certs - clearCerts(function(){ - logUtil.printLog(color.green("temp certs cleared")); - try{ - var result = certGenerator.generateRootCA(); - fs.writeFileSync(rootCAkeyFilePath, result.privateKey); - fs.writeFileSync(rootCAcrtFilePath, result.certificate); + rl.question("do you really want to generate a new one ?)(yes/NO)", function(answer) { + if(/yes/i.test(answer)){ + doGenerate(true); + }else{ + console.log("will not generate a new one"); - logUtil.printLog(color.green("rootCA generated")); - logUtil.printLog(color.green(color.bold("please trust the rootCA.crt in " + certDir))); - logUtil.printLog(color.green(color.bold("or you may get it via anyproxy webinterface"))); + } + rl.close(); + }); - if(isWin){ - exec("start .",{cwd : certDir}); - }else{ - exec("open .",{cwd : certDir}); - } - - }catch(e){ - logUtil.printLog(color.red(e)); - logUtil.printLog(color.red(e.stack)); - logUtil.printLog(color.red("fail to generate root CA"),logUtil.T_ERR); + return; } + cb(error, keyPath, crtPath); }); } -} -function getRootCAFilePath(){ - if(isRootCAFileExists()){ - return rootCAcrtFilePath; - }else{ - return ""; - } -} +}; -module.exports.getRootCAFilePath = getRootCAFilePath; -module.exports.generateRootCA = generateRootCA; -module.exports.getCertificate = getCertificate; -module.exports.createCert = createCert; -module.exports.clearCerts = clearCerts; -module.exports.isRootCAFileExists = isRootCAFileExists; \ No newline at end of file +module.exports = crtMgr; \ No newline at end of file diff --git a/lib/requestHandler.js b/lib/requestHandler.js index 074ea82..2f79d83 100644 --- a/lib/requestHandler.js +++ b/lib/requestHandler.js @@ -14,8 +14,7 @@ var http = require("http"), logUtil = require("./log"), httpsServerMgr = require("./httpsServerMgr"); -var defaultRule = require("./rule_default.js"), - userRule = defaultRule; //init +var userRule = util.freshRequire('./rule_default'); function userRequestHandler(req,userRes){ /* @@ -103,7 +102,7 @@ function userRequestHandler(req,userRes){ resourceInfo.resBody = resBody; resourceInfo.length = resBody ? resBody.length : 0; resourceInfo.statusCode = statusCode; - + GLOBAL.recorder && GLOBAL.recorder.updateRecord(resourceInfoId,resourceInfo); userRes.writeHead(statusCode,resHeader); @@ -140,6 +139,8 @@ function userRequestHandler(req,userRes){ options.headers = util.lower_keys(options.headers); options.headers["content-length"] = reqData.length; //rewrite content length info + options.headers = util.upper_keys(options.headers); + //send request var proxyReq = ( /https/.test(protocol) ? https : http).request(options, function(res) { @@ -202,7 +203,7 @@ function userRequestHandler(req,userRes){ //delay },function(callback){ - var pauseTimeInMS = userRule.pauseBeforeSendingResponse(req,res); + var pauseTimeInMS = userRule.pauseBeforeSendingResponse(req,res); if(pauseTimeInMS){ setTimeout(callback,pauseTimeInMS); }else{ @@ -232,7 +233,7 @@ function userRequestHandler(req,userRes){ resourceInfo.resHeader = resHeader; resourceInfo.resBody = serverResData; resourceInfo.length = serverResData ? serverResData.length : 0; - + GLOBAL.recorder && GLOBAL.recorder.updateRecord(resourceInfoId,resourceInfo); callback(); @@ -260,7 +261,7 @@ function userRequestHandler(req,userRes){ userRes.end(); }); - proxyReq.end(reqData); + proxyReq.end(reqData); } } @@ -272,14 +273,14 @@ function connectReqHandler(req, socket, head){ var shouldIntercept = userRule.shouldInterceptHttpsReq(req); - //bypass webSocket on webinterface + //bypass webSocket on webinterface if(targetPort == 8003){ shouldIntercept = false; // TODO : a more general solution? } logUtil.printLog(color.green("\nreceived https CONNECT request " + host)); if(shouldIntercept){ - logUtil.printLog("==>will forward to local https server"); + logUtil.printLog("==>will forward to local https server"); }else{ logUtil.printLog("==>will bypass the man-in-the-middle proxy"); } @@ -325,7 +326,7 @@ function connectReqHandler(req, socket, head){ //determine the target server function(callback){ - + if(shouldIntercept){ proxyPort = internalHttpsPort; proxyHost = "127.0.0.1"; @@ -356,11 +357,11 @@ function connectReqHandler(req, socket, head){ callback(); }); - }); + }); conn.on("error",function(e){ logUtil.printLog("err when connect to + " + host + " , " + e, logUtil.T_ERR); - }); + }); }catch(e){ logUtil.printLog("err when connect to remote https server (__host)".replace(/__host/,host), logUtil.T_ERR); } @@ -372,7 +373,7 @@ function connectReqHandler(req, socket, head){ resourceInfo.resHeader = {}; resourceInfo.resBody = ""; resourceInfo.length = 0; - + GLOBAL.recorder && GLOBAL.recorder.updateRecord(resourceInfoId,resourceInfo); callback(); @@ -385,9 +386,13 @@ function connectReqHandler(req, socket, head){ }); } +/** +* @return return the merged rule for reference +*/ function setRules(newRule){ + if(!newRule){ - return; + return userRule; }else{ if(!newRule.summary){ @@ -396,8 +401,8 @@ function setRules(newRule){ }; } - userRule = util.merge(defaultRule,newRule); - + userRule = util.merge(userRule,newRule); + var functions = []; if('function' == typeof(userRule.init)){ functions.push(function(cb){ @@ -416,6 +421,7 @@ function setRules(newRule){ } }); + return userRule; } } @@ -427,3 +433,4 @@ module.exports.userRequestHandler = userRequestHandler; module.exports.connectReqHandler = connectReqHandler; module.exports.setRules = setRules; module.exports.getRuleSummary = getRuleSummary; +module.exports.token = Date.now(); diff --git a/lib/rule_default.js b/lib/rule_default.js index ccccad9..30f5a94 100644 --- a/lib/rule_default.js +++ b/lib/rule_default.js @@ -73,6 +73,7 @@ setTimeout(function(){ module.exports = { + token: Date.now(), summary:function(){ var tip = "the default rule for AnyProxy."; if(!isRootCAFileExists){ @@ -102,7 +103,10 @@ module.exports = { if(err){ callback(200, {}, "[AnyProxy failed to load local file] " + err); }else{ - callback(200, {}, buffer); + var header = { + 'Content-Type': utils.contentType(req.anyproxy_map_local) + }; + callback(200, header, buffer); } }); } diff --git a/lib/util.js b/lib/util.js index e1d678a..f3c2314 100644 --- a/lib/util.js +++ b/lib/util.js @@ -1,8 +1,11 @@ var fs = require("fs"), path = require("path"), + mime = require('mime-types'), + color = require('colorful'), + logUtil = require("./log"), exec = require('child_process').exec; - +const changeCase = require('change-case'); // {"Content-Encoding":"gzip"} --> {"content-encoding":"gzip"} module.exports.lower_keys = function(obj){ for(var key in obj){ @@ -34,7 +37,7 @@ module.exports.getAnyProxyHome = function(){ if(!fs.existsSync(home)){ try{ - fs.mkdirSync(home,0777); + fs.mkdirSync(home, '0777'); }catch(e){ return null; } @@ -48,7 +51,7 @@ module.exports.generateCacheDir = function(){ var rand = Math.floor(Math.random() * 1000000), cachePath = path.join(util.getAnyProxyHome(),"./" + CACHE_DIR_PREFIX + rand); - fs.mkdirSync(cachePath,0777); + fs.mkdirSync(cachePath, '0777'); return cachePath; } @@ -60,7 +63,7 @@ module.exports.clearCacheDir = function(cb){ if(isWin){ exec("for /D %f in (" + dirNameWildCard + ") do rmdir %f /s /q",{cwd : home},cb); }else{ - exec("rm -rf " + dirNameWildCard + "",{cwd : home},cb); + exec("rm -rf " + dirNameWildCard + "",{cwd : home},cb); } } @@ -102,4 +105,53 @@ module.exports.filewalker = function(root,cb){ cb && cb.apply(null,[null,ret]); }); -} +}; + +/* +* 获取文件所对应的content-type以及content-length等信息 +* 比如在useLocalResponse的时候会使用到 +*/ +module.exports.contentType = function (filepath) { + return mime.contentType(path.extname(filepath)); +}; + +/* +* 读取file的大小,以byte为单位 +*/ +module.exports.contentLength = function (filepath) { + try { + var stat = fs.statSync(filepath); + return stat.size; + } catch (e) { + logUtil.printLog(color.red("\nfailed to ready local file : " + filepath)); + logUtil.printLog(color.red(e)); + return 0; + } +}; + +module.exports.showRootInstallTip = function () { + logUtil.printLog(color.red("can not find rootCA.crt or rootCA.key"), logUtil.T_ERR); + logUtil.printLog(color.red("you may generate one by the following methods"), logUtil.T_ERR); + logUtil.printLog(color.red("\twhen using globally : anyproxy --root"), logUtil.T_ERR); + logUtil.printLog(color.red("\twhen using as a module : require(\"anyproxy\").generateRootCA();"), logUtil.T_ERR); + logUtil.printLog(color.red("\tmore info : https://github.com/alibaba/anyproxy/wiki/How-to-config-https-proxy"), logUtil.T_ERR); +}; + +/* +* remove the cache before requering, the path SHOULD BE RELATIVE TO UTIL.JS +*/ +module.exports.freshRequire = function (path) { + delete require.cache[require.resolve(path)]; + return require(path); +}; + +module.exports.upper_keys = function (obj) { + var upperObject = {}; + for(var key in obj) { + var upperKey = changeCase.headerCase(key); + upperObject[upperKey] = obj[key]; + } + + return upperObject; +}; + diff --git a/package.json b/package.json index 37d6361..d58f736 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "async": "~0.9.0", "async-task-mgr": ">=1.1.0", "body-parser": "^1.13.1", + "change-case": "^3.0.0", "colorful": "^2.1.0", "commander": "~2.3.0", "compression": "^1.4.4", @@ -17,19 +18,35 @@ "iconv-lite": "^0.4.6", "ip": "^0.3.2", "juicer": "^0.6.6-stable", + "mime-types": "2.1.11", "nedb": "^0.11.0", + "node-easy-cert": "^1.0.0", "node-forge": "^0.6.39", "npm": "^2.7.0", "promise": "^7.0.4", "qrcode-npm": "0.0.3", "stream-throttle": "^0.1.3", - "ws": "^0.4.32" + "ws": "^1.1.0" }, "devDependencies": { - "proxy-eval": ">=1.1.2" + "babel-polyfill": "^6.13.0", + "babel-preset-es2015": "^6.13.2", + "babel-preset-stage-0": "^6.5.0", + "babel-register": "^6.11.6", + "https-proxy-agent": "^1.0.0", + "jasmine": "^2.4.1", + "koa": "^1.2.1", + "koa-body": "^1.4.0", + "koa-router": "^5.4.0", + "koa-send": "^3.2.0", + "koa-websocket": "^2.0.0", + "nodeunit": "^0.9.1", + "request": "^2.74.0", + "stream-equal": "0.1.8" }, "scripts": { - "test": "sh test.sh" + "test": "sh test/test.sh", + "testserver": "node test/server/startServer.js" }, "optionalDependencies": {}, "repository": { diff --git a/proxy.js b/proxy.js index 93d995f..85b9411 100644 --- a/proxy.js +++ b/proxy.js @@ -11,7 +11,6 @@ var http = require('http'), color = require('colorful'), certMgr = require("./lib/certMgr"), getPort = require("./lib/getPort"), - requestHandler = require("./lib/requestHandler"), Recorder = require("./lib/recorder"), logUtil = require("./lib/log"), wsServer = require("./lib/wsServer"), @@ -37,7 +36,8 @@ var T_TYPE_HTTP = 0, DEFAULT_HOST = "localhost", DEFAULT_TYPE = T_TYPE_HTTP; -var default_rule = require('./lib/rule_default'); +var default_rule = util.freshRequire('./rule_default'); +var requestHandler = util.freshRequire('./requestHandler'); //option //option.type : 'http'(default) or 'https' @@ -70,22 +70,39 @@ function proxyServer(option){ logUtil.setPrintStatus(false); } + // copy the rule to keep the original proxyRules independent + proxyRules = Object.assign({}, proxyRules); + + var currentRule = requestHandler.setRules(proxyRules); //TODO : optimize calling for set rule + if(!!option.interceptHttps){ - default_rule.setInterceptFlag(true); + if (!certMgr.isRootCAFileExists()) { + util.showRootInstallTip(); + process.exit(0); + return; + } + + currentRule.setInterceptFlag(true); //print a tip when using https features in Node < v0.12 var nodeVersion = Number(process.version.match(/^v(\d+\.\d+)/)[1]); if(nodeVersion < 0.12){ logUtil.printLog(color.red("node >= v0.12 is required when trying to intercept HTTPS requests :("), logUtil.T_ERR); } + + logUtil.printLog(color.blue("The WebSocket will not work properly in the https intercept mode :("), logUtil.T_TIP); } if(option.throttle){ logUtil.printLog("throttle :" + option.throttle + "kb/s"); - GLOBAL._throttle = new ThrottleGroup({rate: 1024 * parseInt(option.throttle) }); // rate - byte/sec + const rate = parseInt(option.throttle); + if (rate < 1) { + logUtil.printLog(color.red('Invalid throttle rate value, should be positive integer\n'), logUtil.T_ERR); + process.exit(0); + } + GLOBAL._throttle = new ThrottleGroup({rate: 1024 * parseFloat(option.throttle) }); // rate - byte/sec } - requestHandler.setRules(proxyRules); //TODO : optimize calling for set rule self.httpProxyServer = null; async.series( diff --git a/test/data/headers.js b/test/data/headers.js new file mode 100644 index 0000000..2e47a4e --- /dev/null +++ b/test/data/headers.js @@ -0,0 +1,28 @@ +/* +* 用于放置所有header信息的测试数据 +* +*/ + +// Get 和 Post共有的header信息 +/*eslint max-len: ["off"]*/ +const CommonRequestHeader = { + Accept: 'application/json;charset=utf-8,text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'Accept-Charset': 'utf-8', + 'Accept-Encoding': 'gzip, deflate', + 'Accept-Language': 'zh-CN', + 'Accept-Datetime': 'Thu, 31 May 2007 20:35:00 GMT', + 'Authorization': 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==', + 'Cache-Control': 'no-cache', + 'Connection': 'keep-alive', + 'Cookie': 'testCookie1=cookie1; testCookie2=cookie2', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Date': 'Tue, 15 Nov 1994 08:12:31 GMT', + 'Origin': 'http://localhost', + 'Pragma': 'no-cache', + 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36' +}; + +module.exports = { + CommonRequestHeader +}; + diff --git a/test/data/test.css b/test/data/test.css new file mode 100644 index 0000000..7345751 --- /dev/null +++ b/test/data/test.css @@ -0,0 +1,3 @@ +.test { + display: block; +} \ No newline at end of file diff --git a/test/data/test.eot b/test/data/test.eot new file mode 100755 index 0000000000000000000000000000000000000000..c4c74f965eb55d1c1b527f12af37d3047521be65 GIT binary patch literal 5320 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 literal 0 HcmV?d00001 diff --git a/test/data/test.js b/test/data/test.js new file mode 100644 index 0000000..9883731 --- /dev/null +++ b/test/data/test.js @@ -0,0 +1,3 @@ +function test () { + console.info('This is nothing but a js file, to test the js download'); +} \ No newline at end of file diff --git a/test/data/test.json b/test/data/test.json new file mode 100644 index 0000000..107be9b --- /dev/null +++ b/test/data/test.json @@ -0,0 +1,3 @@ +{ + 'testkey': 'this is just a normal json file' +} \ No newline at end of file diff --git a/test/data/test.png b/test/data/test.png new file mode 100755 index 0000000000000000000000000000000000000000..55a2aa302a5bbc31c885566fa4225dcbb5cd1221 GIT binary patch literal 105758 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

BCfM4+JaYX3L)Gb`g))_dk&JaS7I4DI>>KqeD5a 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 erk(j7>;HdiU*$-!JX|~g0000 + + +Copyright (C) 2016 by original authors @ fontello.com + + + + + + + + + + \ No newline at end of file diff --git a/test/data/test.ttf b/test/data/test.ttf new file mode 100755 index 0000000000000000000000000000000000000000..c3616fe23945564cafbca9856b0fe8f2e84ab93f GIT binary patch literal 5152 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 a2^4%BTYIgVXdSsH4!)yYZ{S5SNAzD0tecPk literal 0 HcmV?d00001 diff --git a/test/data/test.webp b/test/data/test.webp new file mode 100644 index 0000000000000000000000000000000000000000..565200ab489d6037e98e9f5de5eab505dc7c5875 GIT binary patch literal 45982 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