Skip to content

Commit e2d1e37

Browse files
authored
fix(authentication): fix authentication errors after deploying a new instance with the same code (#gb01xz) (#447)
1 parent 5fa1733 commit e2d1e37

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

app/services/forest_liana/oidc_client_manager.rb

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,20 @@ module ForestLiana
44
class OidcClientManager
55
def self.get_client_for_callback_url(callback_url)
66
begin
7-
client_data = Rails.cache.read(callback_url) || nil
8-
if client_data.nil?
9-
configuration = ForestLiana::OidcConfigurationRetriever.retrieve()
10-
11-
if ForestLiana.forest_client_id.nil?
7+
configuration = ForestLiana::OidcConfigurationRetriever.retrieve()
8+
if ForestLiana.forest_client_id.nil?
9+
client_data = Rails.cache.read("#{callback_url}-#{ForestLiana.env_secret}-client-data") || nil
10+
if client_data.nil?
1211
client_credentials = ForestLiana::OidcDynamicClientRegistrator.register({
1312
token_endpoint_auth_method: 'none',
1413
redirect_uris: [callback_url],
1514
registration_endpoint: configuration['registration_endpoint']
1615
})
17-
else
18-
client_credentials = { 'client_id' => ForestLiana.forest_client_id }
16+
client_data = { :client_id => client_credentials['client_id'], :issuer => configuration['issuer'] }
17+
Rails.cache.write("#{callback_url}-#{ForestLiana.env_secret}-client-data", client_data)
1918
end
20-
21-
client_data = { :client_id => client_credentials['client_id'], :issuer => configuration['issuer'] }
22-
Rails.cache.write(callback_url, client_data)
19+
else
20+
client_data = { :client_id => ForestLiana.forest_client_id, :issuer => configuration['issuer'] }
2321
end
2422

2523
OpenIDConnect::Client.new(
@@ -30,7 +28,7 @@ def self.get_client_for_callback_url(callback_url)
3028
token_endpoint: '/oidc/token',
3129
)
3230
rescue => error
33-
Rails.cache.delete(callback_url)
31+
Rails.cache.delete("#{callback_url}-#{ForestLiana.env_secret}-client-data")
3432
raise error
3533
end
3634
end

0 commit comments

Comments
 (0)