相关疑难解决方法(0)

是否可以基于每个用户设置Active Resource HTTP身份验证的线程安全?

Active Resource可以使用在类级别设置的HTTP身份验证.例如:

class Resource < ActiveResource::Base
end

Resource.user = 'user'
Resource.password = 'password'
Run Code Online (Sandbox Code Playgroud)

要么

Resource.site = "http://user:password@site.com/"
Run Code Online (Sandbox Code Playgroud)

但是,如果我根据登录的用户使用不同的HTTP身份验证呢?如果我更改Resource.user和Resource.password,是否会导致竞争条件,其中来自一个线程的请求突然开始使用其请求在另一个线程中同时运行的用户的身份验证?或者这是一个非问题(只要我重置请求之间的身份验证),因为rails服务器不是多线程的?

即使没有线程安全问题,如果我无法重置它们仍然存在风险,以前用户的凭据将在未来的请求中自动使用.

更新:在对ActiveResource感到沮丧之后,我编写了自己的REST库: https ://github.com/DeepWebTechnologies/well_rested

ruby-on-rails activeresource thread-safety class-variables

9
推荐指数
1
解决办法
1645
查看次数