我正在尝试在我的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)?
感谢您的帮助。
答案 0 :(得分:2)
我不知道如何在中间件初始化程序中使用request.env变量,但是如果要发送任何信息,可以通过以下方式在选项哈希中执行:
request.env['omniauth.strategy'].options[:dn] = request.env['SSL_CLIENT_S_DN']
你的控制器内部。