def decodeAndValidateToken(token, cryptkey=@cryptkey, signkey=@signkey,
internal_allow_recursion=true)
haveoldsecret = false
if (oldsecretexpiry and (Time.now.to_i < oldsecretexpiry.to_i))
haveoldsecret = true if (@oldcryptkey and @oldsignkey)
end
haveoldsecret = (haveoldsecret and internal_allow_recursion)
stoken = decodeToken(token, cryptkey)
stoken = validateToken(stoken, signkey) if stoken
if (stoken.nil? and haveoldsecret)
debug("Warning: Failed to validate token with current secret, attempting old secret.")
stoken = decodeAndValidateToken(token, @oldcryptkey, @oldsignkey, false)
end
stoken
end