Advertisement
Guest User

AJAX Validator

a guest
Oct 14th, 2016
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function ajaxValidator(input){
  2.     let hash = input.pop().split('');
  3.     let input1Reg = /^Method: (PUT|GET|POST|DELETE)$/g;
  4.     let input2Reg = /^Credentials: (Bearer|Basic) ([A-Za-z0-9]+)$/g;
  5.     let input3Reg = /^Content: ([a-zA-Z0-9.]+)$/g;
  6.     let credentialRegex = /^(Bearer|Basic) ([A-Za-z0-9]+)$/g;
  7.     let contentRegex = /^([a-zA-Z0-9.]+)$/g;
  8.     let decoded = false;
  9.     for (let i = 0; i < input.length-1; i+=3) {
  10.         if(!input[i].match(input1Reg)){console.log(`Response-Code:400`);continue;}
  11.         if(!input[i+1].match(input2Reg)){console.log(`Response-Code:400`);continue;}
  12.         if(!input[i+2].match(input3Reg)){console.log(`Response-Code:400`);continue;}
  13.         let [empty1,method] = input[i].split(': ');
  14.         let [empty2,credentials] = input[i+1].split(': ');
  15.         let [empty3,content] = input[i+2].split(': ');
  16.         if(method != 'GET' && method != 'POST' && method != 'PUT' && method != 'DELETE'){console.log(`Response-Code:400`);continue;}
  17.         if(!credentials.match(credentialRegex)){console.log(`Response-Code:400`); continue;}
  18.         if(!content.match(contentRegex)){console.log(`Response-Code:400`); continue;}
  19.         credentials = credentials.split(' ');
  20.         if(method != 'GET' && credentials[0] == 'Basic'){console.log(`Response-Method:${method}&Code:401`);continue;}
  21.         for (let j = 0; j < hash.length; j+=2) {
  22.              let numberOfOcc = Number(hash[j]);
  23.              let letter = hash[j+1];
  24.              let letterReg = new RegExp(letter,'g');
  25.              let match = credentials[1].match(letterReg);
  26.              if(match != null && match.length >= numberOfOcc) {decoded = true;break;}
  27.         }
  28.         if(decoded === false){console.log(`Response–Method:${method}&Code:403`);continue;}
  29.         console.log(`Response-Method:${method}&Code:200&Header:${credentials[1]}`);
  30.     }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement