From c00cb14d5d99971e98825c434ceadfe5dca48a02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Muhammet=20DI=CC=87LEK?= Date: Fri, 8 Nov 2013 15:50:14 +0200 Subject: [PATCH] #103 secret_token.rb methodology changed --- lib/cybele/app_builder.rb | 5 ++++ lib/cybele/generators/app_generator.rb | 4 ++- .../config/initializers/secret_token.erb | 25 +++++++++++++++++++ templates/cybele_gitignore | 4 +-- 4 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 templates/config/initializers/secret_token.erb diff --git a/lib/cybele/app_builder.rb b/lib/cybele/app_builder.rb index 92efe01..199633e 100644 --- a/lib/cybele/app_builder.rb +++ b/lib/cybele/app_builder.rb @@ -263,6 +263,11 @@ def setup_recipes generate 'recipes_matic:install' end + def update_secret_token + remove_file 'config/initializers/secret_token.rb' + template 'config/initializers/secret_token.erb', 'config/initializers/secret_token.rb' + end + private def action_mailer_host(rails_env, host) diff --git a/lib/cybele/generators/app_generator.rb b/lib/cybele/generators/app_generator.rb index 4c93c01..f369cc9 100644 --- a/lib/cybele/generators/app_generator.rb +++ b/lib/cybele/generators/app_generator.rb @@ -195,7 +195,9 @@ def setup_recipes build :setup_recipes end - + def setup_secret_token + build :update_secret_token + end protected diff --git a/templates/config/initializers/secret_token.erb b/templates/config/initializers/secret_token.erb new file mode 100644 index 0000000..4517d1b --- /dev/null +++ b/templates/config/initializers/secret_token.erb @@ -0,0 +1,25 @@ +# Be sure to restart your server when you modify this file. + +# Your secret key is used for verifying the integrity of signed cookies. +# If you change this key, all old signed cookies will become invalid! + +# Make sure the secret is at least 30 characters and all random, +# no regular words or you'll be exposed to dictionary attacks. +# You can use `rake secret` to generate a secure secret key. + +# Make sure your secret_key_base is kept private +# if you're sharing your code publicly. +def find_secure_token + token_file = Rails.root.join('.secret') + if File.exist? token_file + # Use the existing token. + File.read(token_file).chomp + else + # Generate a new token of 64 random hexadecimal characters and store it in token_file. + token = SecureRandom.hex(64) + File.write(token_file, token) + token + end +end + +<%= app_name.classify %>::Application.config.secret_key_base = find_secure_token \ No newline at end of file diff --git a/templates/cybele_gitignore b/templates/cybele_gitignore index 5a5489b..5254ead 100644 --- a/templates/cybele_gitignore +++ b/templates/cybele_gitignore @@ -38,6 +38,4 @@ vendor/bundler_gems config/settings.local.yml config/settings/*.local.yml config/environments/*.local.yml - -# Ignore secret token -config/initializers/secret_token.rb \ No newline at end of file +.secret \ No newline at end of file