使用request.env Inside Rails Middleware

时间:2011-06-24 22:58:44

标签: ruby-on-rails request passenger middleware

我正在尝试在我的Rails中间件中使用Passenger的请求变量,以便我可以向OmniAuth策略发送信息:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :casmate, {
    :setup => true,
    :dn    => request.env['SSL_CLIENT_S_DN']
  }
end

但在中间件中无法识别“请求”。有没有办法在中间件中执行此操作,或者有没有办法在控制器中调用中间件并传入相同的符号(:casmate,:setup,:dn)?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我不知道如何在中间件初始化程序中使用request.env变量,但是如果要发送任何信息,可以通过以下方式在选项哈希中执行:

request.env['omniauth.strategy'].options[:dn] = request.env['SSL_CLIENT_S_DN']

你的控制器内部。