diff --git a/config/application.rb b/config/application.rb index 25fdd4bb518..349f9d8df19 100644 --- a/config/application.rb +++ b/config/application.rb @@ -117,18 +117,17 @@ class Application < Rails::Application next if source == IdentityConfig.store.domain_name redirect_uris = Rails.cache.fetch( - 'all_service_provider_redirect_uris', + 'all_service_provider_redirect_uris_cors', expires_in: IdentityConfig.store.all_redirect_uris_cache_duration_minutes.minutes, ) do - ServiceProvider.pluck(:redirect_uris).flatten.compact + ServiceProvider.pluck(:redirect_uris).flatten.compact.map do |uri| + protocol, domain_path = uri.split('//', 2) + domain, _path = domain_path&.split('/', 2) + "#{protocol}//#{domain}" + end.uniq end - redirect_uris.find do |uri| - split_uri = uri.split('//') - protocol = split_uri[0] - domain = split_uri[1].split('/')[0] if split_uri.size > 1 - source == "#{protocol}//#{domain}" - end.present? + redirect_uris.any? { |uri| uri == source } end resource '/.well-known/openid-configuration', headers: :any, methods: [:get] resource '/api/openid_connect/certs', headers: :any, methods: [:get]