2012-04-12 1 views
3

これを行う最もクリーンな方法は何ですか?一部のラックミドルウェアですか?私はenv['SERVER_SOFTWARE']を修正しようとしましたが、私はまだ対応してもらう:Sinatra on Thin:HTTP 'Server'レスポンスヘッダーを非表示または変更する方法

Server: thin 1.3.1 codename Triple Espresso 

そのヘッダの値を変更、または応答からcompletetlyそれを削除する方法は?

EDIT

もう一つの試み:

before do 
    headers 'Server' => 'ipm' 
end 

after do 
    headers 'Server' => 'ipm' 
end 

しかし、まだ変化なし。

答えて

4

これは、ここに動作します:

require 'sinatra' 

get '/' do 
    [200, {'Server' => 'My Server'}, 'contents'] 
end 

あなたはすべての要求のためにそれをしたい場合:

class ChangeServer 
    def initialize(app) 
    @app = app 
    end 

    def call(env) 
    res = @app.call(env) 
    res[1]['Server'] = 'My server' 
    return res 
    end 
end 

そして、あなたのアプリで、あなたuse ChangeServer

+0

ありがとうございました。しかし、ほとんどのルートは 'json model_instance'のようなものを返します。各ルートにヘッダーのハッシュを追加することは、推奨される解決策ではありません。 – Ernest

+0

あなたのコメントを反映するために答えを編集しました。 –

+0

はい、ありがとうございます。 – Ernest

関連する問題