Method: CF::UAA::TokenCoder#decode
- Defined in:
- lib/uaa/token_coder.rb
#decode(auth_header) ⇒ Hash
Returns hash of values decoded from the token contents. If the audience_ids were specified in the options to this instance (see #initialize) and the token does not contain one or more of those audience_ids, an AuthError will be raised. AuthError is raised if the token has expired.
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/uaa/token_coder.rb', line 178 def decode(auth_header) unless auth_header && (tkn = auth_header.split(' ')).length == 2 && tkn[0] =~ /^bearer$/i raise InvalidTokenFormat, "invalid authentication header: #{auth_header}" end reply = self.class.decode(tkn[1], ) auds = Util.arglist(reply[:aud] || reply['aud']) if [:audience_ids] && (!auds || (auds & [:audience_ids]).empty?) raise InvalidAudience, "invalid audience: #{auds}" end exp = reply[:exp] || reply['exp'] unless exp.is_a?(Integer) && exp > Time.now.to_i raise TokenExpired, "token expired" end reply end |