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
-