Commit 44c86f3

mo <mo.khan@gmail.com>
2017-11-10 23:42:53
cache metadata.
1 parent a97e957
Changed files (1)
app
app/controllers/metadata_controller.rb
@@ -6,22 +6,24 @@ class MetadataController < ApplicationController
   private
 
   def to_xml
-    builder = Saml::Kit::IdentityProviderMetadata::Builder.new
-    builder.sign = false
-    builder.contact_email = 'hi@example.com'
-    builder.organization_name = "Acme, Inc"
-    builder.organization_url = root_url
-    builder.add_single_sign_on_service(new_session_url, binding: :post)
-    builder.add_single_sign_on_service(new_session_url, binding: :http_redirect)
-    builder.add_single_logout_service(logout_url, binding: :post)
-    builder.name_id_formats = [
-      Saml::Kit::Namespaces::EMAIL_ADDRESS,
-      Saml::Kit::Namespaces::PERSISTENT,
-      Saml::Kit::Namespaces::TRANSIENT,
-    ]
-    builder.attributes << :id
-    builder.attributes << :email
-    builder.attributes << :created_at
-    builder.build.to_xml
+    Rails.cache.fetch(metadata_url, expires_in: 1.hour) do
+      builder = Saml::Kit::IdentityProviderMetadata::Builder.new
+      builder.sign = false
+      builder.contact_email = 'hi@example.com'
+      builder.organization_name = "Acme, Inc"
+      builder.organization_url = root_url
+      builder.add_single_sign_on_service(new_session_url, binding: :post)
+      builder.add_single_sign_on_service(new_session_url, binding: :http_redirect)
+      builder.add_single_logout_service(logout_url, binding: :post)
+      builder.name_id_formats = [
+        Saml::Kit::Namespaces::EMAIL_ADDRESS,
+        Saml::Kit::Namespaces::PERSISTENT,
+        Saml::Kit::Namespaces::TRANSIENT,
+      ]
+      builder.attributes << :id
+      builder.attributes << :email
+      builder.attributes << :created_at
+      builder.build.to_xml
+    end
   end
 end