lib/casserver/server.rb in rubycas-server-1.0 vs lib/casserver/server.rb in rubycas-server-1.0.1

- old
+ new

@@ -6,17 +6,23 @@ require 'logger' $LOG ||= Logger.new(STDOUT) module CASServer class Server < Sinatra::Base - CONFIG_FILE = ENV['CONFIG_FILE'] || "/etc/rubycas-server/config.yml" + if ENV['CONFIG_FILE'] + CONFIG_FILE = ENV['CONFIG_FILE'] + elsif !(c_file = File.dirname(__FILE__) + "/../../config.yml").nil? && File.exist?(c_file) + CONFIG_FILE = c_file + else + CONFIG_FILE = "/etc/rubycas-server/config.yml" + end include CASServer::CAS # CAS protocol helpers include Localization set :app_file, __FILE__ - set :public, Proc.new { settings.config[:public_dir] || File.join(root, "..", "..", "public") } + set :public_folder, Proc.new { settings.config[:public_dir] || File.join(root, "..", "..", "public") } config = HashWithIndifferentAccess.new( :maximum_unused_login_ticket_lifetime => 5.minutes, :maximum_unused_service_ticket_lifetime => 5.minutes, # CAS Protocol Spec, sec. 3.2.1 (recommended expiry time) :maximum_session_lifetime => 2.days, # all tickets are deleted after this period of time @@ -30,11 +36,11 @@ end # Strip the config.uri_path from the request.path_info... # FIXME: do we really need to override all of Sinatra's #static! to make this happen? def static! - return if (public_dir = settings.public).nil? + return if (public_dir = settings.public_folder).nil? public_dir = File.expand_path(public_dir) path = File.expand_path(public_dir + unescape(request.path_info.gsub(/^#{settings.config[:uri_path]}/,''))) return if path[0, public_dir.length] != public_dir return unless File.file?(path) @@ -625,10 +631,11 @@ # required @service = clean_service_url(params['service']) @ticket = params['ticket'] # optional + @pgt_url = params['pgtUrl'] @renew = params['renew'] st, @error = validate_service_ticket(@service, @ticket) @success = st && !@error @@ -740,6 +747,5 @@ raise unless @custom_views super engine, data, options, views end end end -