10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/keycloak-api-rails/middleware.rb', line 10
def call(env)
method = env["REQUEST_METHOD"]
path = env["PATH_INFO"]
service = KeycloakApiRails.service
if service.need_middleware_authentication?(method, path, env)
logger.debug("Start authentication for #{method} : #{path}")
begin
authenticate(service, env)
rescue TokenError => e
logger.debug("The error causing the Token to fail: #{e.original_error&.message || e.message}")
return authentication_failed(e)
rescue HTTPError, MissingPublicKeysError => e
logger.error("KeycloakApiRails: no token can be verified for #{method} : #{path}. #{e.class}: #{e.message}")
return authentication_unavailable
end
else
logger.debug("Skip authentication for #{method} : #{path}")
end
@app.call(env)
end
|