#!/bin/bash # Saving login token TOKEN=$(curl -k --user "spaceti:E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0" -d '{"password":"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0","username":"spaceti"}' -H "Content-Type: application/json" https://192.168.1.3:8443/AaaManager/authSession 2>/dev/null | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["id"]') # Saving current time and timestamp # echo "==================================" # echo "Saving current time ( saved_time ): $DATE / timestamp: $TIMESTAMP" # echo "==================================" echo "========================" echo "Script to show uncorrect behavior when returing deleted tokens" echo "1. create token" echo "2. deletet token" echo "3. request deleted token with time after last token was deleted" echo "------------------------" DATE=`date +"%Y-%m-%d %H:%M:%S"` TIMESTAMP=`date +%s000 | cut -b1-13` echo "------------------------" echo "STEPS : Create TOKEN and then deletes it" echo "EXPECT : Token is deleted and is returned when getting deleted token with saved_time ( time before was deleted )" echo "------------------------" #echo "Creating test token with id = 235c4a3c-7e20-4f2a-8ed2-2fe36cc87907" RES=$(curl -k -u "$TOKEN:" -d '{"items":[{"id":"235c4a3c-7e20-4f2a-8ed2-2fe36cc87907","name":"bug test","description":"mobile","tokenType":"Token","tokenBits":32,"tokenData":"7B9D32","timeToLive":255,"authErrors":255,"flags":["Enabled","NoValidity"],"subjectId":"72b37f7e-5761-4e6c-8e87-20c0bed0d904"}]}' -H "Content-Type: application/json" -X POST https://192.168.1.3:8443/TokenManager/setTokens 2>/dev/null ) #echo #echo "Deleting test token..." RES=$(curl -k -u "$TOKEN:" -d '{"items":["235c4a3c-7e20-4f2a-8ed2-2fe36cc87907"]}' -H "Content-Type: application/json" -X POST https://192.168.1.3:8443/TokenManager/deleteTokens 2>/dev/null ) #echo "/getTokensDeleted with time: $DATE" #echo "Expect only one token which has been deleted" RES=$(curl -k -u "$TOKEN:" -d "{\"timestamp\":$TIMESTAMP}" -H "Content-Type: application/json" -X POST https://192.168.1.3:8443/TokenManager/getTokensDeleted 2>/dev/null ) echo "EXPECTED : {\"items\":[\"235c4a3c-7e20-4f2a-8ed2-2fe36cc87907\"]}" echo "ACTUAL : $RES" echo "------------------------" echo "OK - expected token is returned" echo "------------------------" echo "" echo "==================================" echo "Now we wait 5 sec to ensure timestamp for deleted token is in past" echo "==================================" echo "" sleep 5 echo "------------------------" echo "STEPS : Getting deleted tokens before 2 sec" echo "EXPECT : no tokens ( since we have deleted token before 5 sec )" echo "------------------------" ((TIMESTAMP=TIMESTAMP+2000)) # adding 2000 ms to saved timestamp RES=$(curl -k -u "$TOKEN:" -d "{\"timestamp\":$TIMESTAMP}" -H "Content-Type: application/json" -X POST https://192.168.1.3:8443/TokenManager/getTokensDeleted 2>/dev/null ) echo "EXPECTED : {"items":[]}" echo "ACTUAL : $RES" echo "------------------------" echo "BUG: Token was deleted 5 seconds ago, but was returned even we requested tokens deleted 2 sec ago" echo "------------------------" echo "" echo "Another bug: future date" echo "------------------------" echo "STEPS : Getting deleted tokens with future date" echo "EXPECT : no tokens" echo "------------------------" ((TIMESTAMP=TIMESTAMP+20000)) # adding 20s to saved timestamp RES=$(curl -k -u "$TOKEN:" -d "{\"timestamp\":$TIMESTAMP}" -H "Content-Type: application/json" -X POST https://192.168.1.3:8443/TokenManager/getTokensDeleted 2>/dev/null ) echo "EXPECTED : {"items":[]}" echo "ACTUAL : $RES" echo "------------------------" echo "BUG: Token was deleted 5 seconds ago, but was returned even we requested time in future" echo "------------------------"