CAS認証にcasrack-the-authenticatorgemを使用しています。私のサーバーはSinatra上でThinを実行しています。CAS認証ビットが機能するようになりましたが、CASログインを確認するために「/index.html」リクエストをインターセプトするようにRackに指示する方法がわかりません。ユーザーがページの表示を許可されていない場合は、HTTPを返します。実際のページを提供する代わりに403応答。誰かがこれを経験したことがありますか?ありがとう。
私のアプリ:
class Foo < Sinatra::Base
enable :sessions
set :public, "public"
use CasrackTheAuthenticator::Simple, :cas_server => "https://my.cas_server.com"
use CasrackTheAuthenticator::RequireCAS
get '/' do
puts "Hello World"
end
end
私のラックアップファイル:
require 'foo'
use Rack::CommonLogger
use Rack::Lint
run Foo
Rackにファイルサービスの認証を理解させる最初の試み(コメントや考えを歓迎します):
builder = Rack::Builder.new do
map '/foo/index.html' do
run Proc.new { |env|
user = Rack::Request.new(env).session[CasrackTheAuthenticator::USERNAME_PARAM]
[401, { "Content-Type" => "text/html" }, "CAS Authentication Required"] unless user
# Serve index.html because we detected user
}
end
map '/foo' do
run Foo
end
end
run builder