2012-04-12 47 views
3

這是乾淨的方法嗎?一些Rack中間件?我試圖修改env['SERVER_SOFTWARE'],但我仍然得到迴應:Sinatra on Thin:如何隱藏或更改HTTP'Server'響應標題

Server: thin 1.3.1 codename Triple Espresso 

如何更改頭的值,或響應completetly刪除嗎?

編輯

闖闖:

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 2012-04-12 15:10:22

+0

我編輯了答案以反映您的評論。 – 2012-04-12 15:18:20

+0

是的,謝謝。 – Ernest 2012-04-12 18:45:31