Ernest
Ernest

Reputation: 8829

Sinatra on Thin: How to hide or change HTTP 'Server' response header

What is the cleanest way to do this? Some Rack middleware? I tried to modify env['SERVER_SOFTWARE'] but I still get in response:

Server: thin 1.3.1 codename Triple Espresso

How to change the value of that header, or remove it completetly from response?

EDIT

Another try:

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

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

But still no changes.

Upvotes: 3

Views: 1324

Answers (1)

Adiel Mittmann
Adiel Mittmann

Reputation: 1764

This works here:

require 'sinatra'

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

If you want to do it for all requests:

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

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

And then you use ChangeServer in your app.

Upvotes: 4

Related Questions