Sinatra on Thin:如何隐藏或更改HTTP'Server'响应头

时间:2012-04-12 14:01:08

标签: sinatra rack thin

最干净的方法是什么?一些Rack中间件?我试图修改env['SERVER_SOFTWARE'],但我仍然得到回应:

Server: thin 1.3.1 codename Triple Espresso

如何更改该标头的值,或者从响应中完全删除它?

编辑

另一次尝试:

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

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

但仍然没有变化。

1 个答案:

答案 0 :(得分: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