lib/serverless_hub/authorizer.rb in serverless_hub-1.0.4 vs lib/serverless_hub/authorizer.rb in serverless_hub-1.0.5

- old
+ new

@@ -1,7 +1,7 @@ -require 'jwt' -require 'json/jwt' +require "jwt" +require "json/jwt" require "rest-client" module ServerlessHub class AuthorizerTokenDecoder def initialize(app) @@ -15,49 +15,47 @@ if tokens.present? claims = tokens[0] env["lambda.event"]["requestContext"]["authorizer"] = { "principalId" => claims["sub"], - "claims" => claims + "claims" => claims, } end end return @app.call(env) end def self.jwks - RestClient.get(ENV["JWKS_URL"] || '') + RestClient.get(ENV["JWKS_URL"] || "") end private - def decoded_token(token) - if token.present? && token.starts_with?("Bearer ") - token = token[7, token.length] - end - JWT.decode token, jwk_set.first.to_key, true, { algorithm: 'RS256' } rescue "" + def decoded_token(token) + token = token.split(" ").last + JWT.decode token, jwk_set.first.to_key, true, { algorithm: "RS256" } rescue "" end def jwk_set @jwk_set ||= JSON::JWK::Set.new( JSON.parse( AuthorizerTokenDecoder.jwks ) ) end end - + class Authorizer def initialize(app) @app = app end - + def call(env) if env["lambda.event"] && env["lambda.event"]["requestContext"] env["authorizer"] = env["lambda.event"]["requestContext"]["authorizer"] end - + return @app.call(env) end end end