如何使用Deaise的“ Warden”与使用Deaise的Rails应用程序相同的堆栈中验证机架应用程序?

StackOverflow https://stackoverflow.com/questions/3998359

顺便说一句,我正在使用Rails 3。

如何使用Deaise的“ Warden”来验证与使用Deaise的Rails应用程序中同一堆栈中的机架应用程序?

我的问题是,当我打电话给我时:

request.env['warden'] # nil :(

从机架堆上的另一个应用程序中,我得到了零!

我通过config.ru将DAV4RACK(WebDAV)集成在我的Rails应用程序中。我在铁轨应用程序中使用设计进行身份验证。

当我尝试从自定义DAV4RACK资源访问“监狱长”时,request.env ['Warden']我得到了零。我如何使用看守在我的DAV4RACK资源中进行身份验证?

config.ru i使用的示例:

http://pastie.org/1240732

有帮助吗?

解决方案

在您的config.ru中,您的堆栈不使用监狱长。

如果您检查到“/'路径的请求,则在config.ru中使用立即的机架应用程序。监狱长中间限制了Rails应用程序。因此,就像您的机架应用程序调用其他任何其他机架中间件一样,您无法获得监狱长信息

您需要在中间件监狱长之后定义机架应用程序。因为没有看守中间件,就没有任何监狱员能力。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top