Tài nguyên hiện hoạt có thể sử dụng bộ xác thực HTTP ở cấp lớp. Ví dụ:Chủ đề có an toàn để đặt xác thực HTTP tài nguyên hoạt động trên cơ sở từng người dùng không?
class Resource < ActiveResource::Base
end
Resource.user = 'user'
Resource.password = 'password'
hoặc
Resource.site = "http://user:[email protected]/"
Nhưng nếu tôi sử dụng xác thực HTTP khác nhau trên cơ sở đó người dùng được đăng nhập? Nếu tôi thay đổi Resource.user và Resource.password, điều đó sẽ gây ra tình trạng cuộc đua khi yêu cầu từ một chuỗi đột nhiên bắt đầu sử dụng xác thực của người dùng có yêu cầu đang chạy đồng thời trong một luồng khác không? Hoặc đây có phải là sự cố không (miễn là tôi đặt lại xác thực giữa các yêu cầu) vì các máy chủ đường ray không đa luồng?
Ngay cả khi không có vấn đề an toàn chủ đề, vẫn có vẻ nguy hiểm nếu tôi không đặt lại chúng, thông tin đăng nhập của người dùng trước đó sẽ được tự động sử dụng bởi các yêu cầu trong tương lai.
Cập nhật: Sau khi bị thất vọng với ActiveResource, tôi đã viết thư viện REST của riêng tôi: https://github.com/DeepWebTechnologies/well_rested
Điều này có nghĩa là có, điều đó gây ra tình trạng chạy đua không? Hay đây chỉ là một biện pháp phòng ngừa? –
Có, trong chế độ sản xuất, bạn có thể chạy trong điều kiện chủng tộc nếu bạn muốn thay đổi thông số kết nối theo yêu cầu. Sử dụng biến cục bộ Thread sẽ giải quyết vấn đề này. –
Tôi có giải pháp tương tự để đặt 'self.site' không có vấn đề về điều kiện chủng tộc http://stackoverflow.com/questions/8623204/set-site-user-fields-in-activeresource/9053643#9053643 – troex