2009-08-06 11 views
0

は、どのように私はこのようなサブクラスを使用してthis pageに同じ認証ものを行うことができます。ルビーWEBrickにHTTP認証

 class Configuration < HTTPServlet::AbstractServlet 
     def do_GET (request, response) 
      SOMETHING.... 
     end 
     end 

    server = HTTPServer.new(:Port => 666) 
    server.mount "/conf", Configuration 
    trap "INT" do server.shutdown end 
    server.start 

答えて

1

あなたはほとんど同じスタイルなどでそれを行う場合は私のために[OK]を動作するようです

class Configuration < HTTPServlet::AbstractServlet 
    def do_GET(req, res) 
     HTTPAuth.basic_auth(req, res, "My Realm") {|user, pass| 
      # block should return true if 
      # authentication token is valid 
      user == 'user' && pass == 'topsecret' 
     } 
     res.body = 
      "Authenticated OK\n" 
    end 
end 

問題は何ですか?だから私はあなたが「サービス」に「構成」クラスにHTTPAuth.basic_auth(....ブロックを置くことができることを読んだ私は上記のように私のコードを書いた

+0

、何らかの理由:(ため、それはdidntの仕事。私は最初にページを要求するときに認証を要求しますが、リフレッシュしたり閉じたりして再度開くときには、それは、(同じIPに対してinitメソッドやserviceメソッドを何度も呼び出さないため)webrickが作成するインスタンスを破棄していないように見える –

+0

私はブラウザがレルムの資格情報を記憶し、自動的に再送信するため、リフレッシュします。ブラウザを閉じて再度開いたときに、ブラウザウィンドウをすべて閉じてブラウザが完全に終了しましたか? – mikej

+0

試してみたいと思ったら、私は完全なテストスクリプトをhttp://pastie.org/pastes/575142にアップロードしました。 – mikej