我在Rails 3.0.9中使用HTTP基本认证,我需要检查用户是否有权在我的html.erb中显示一些元素文件。我怎样才能做到这一点?检查用户是否被授权(HTTP基本认证,Rails 3.0.9)
6
A
回答
10
维塔利的做法看起来像一个很好的解决方案,但一个严重的错误,授予管理员访问任何尝试登录的人,即使他们的凭据不正确。
:首先,一对夫妇的功能测试(上行动需要身份验证)(它被upvoted人们不要盲目接受它的安全漏洞的“正确”答案张贴这在希望的答案)
test "admin is set with correct credentials" do
@request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials("user", "pass")
get :index
assert_response 200
assert_equal true, session[:admin]
end
test "admin isn't set with incorrect credentials" do
@request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials("user", "incorrect")
get :index
assert_response 401
assert_not_equal true, session[:admin]
end
如果使用Vitaly的代码运行此操作,则第二个测试将失败,因为session[:admin]
将被设置为true,即使密码不正确。
这里是我的代码,以正确设置session[:admin]
,使这两个测试通过:
private
def authenticate
authenticate_or_request_with_http_basic do |user_name, password|
session[:admin] = (user_name == "name" && password == "pass")
end
end
0
您可以使用基本身份验证惨惨的工作,阅读本指南https://github.com/ryanb/cancan/wiki/changing-defaults,那么就使用康康舞为通常情况下,您可以根据登录的用户名设置权限。
+0
它看起来不错,但它增加了非必要的复杂性。我想到使用会话来检查用户是否登录的可用性。有任何想法吗? – Vitaly
相关问题
- 1. 检查用户是否被授权
- 2. 如何检查用户是否被授权内部操作
- 3. HTTP基本授权在.NET
- 4. phpMyAdmin基本HTTP授权
- 5. http auth rails 3.0.9
- 6. django是否与HTTP基本授权本地集成
- 7. SleekXMPP-如何检查用户是否被认证?
- 8. 检查用户是否在Firebase中的首次被认证Google Android的认证
- 9. Ruby on Rails HTTP基本认证
- 10. HTTP认证报头的OpenID授权码
- 11. Rails用户授权
- 12. 多个用户认证和授权
- 13. PHP-SDK:检查用户是否授权我的应用程序
- 14. 虽然用户被授权,但正在检查用户!= null
- 15. Ruby on Rails CRUD和用户认证和授权模块
- 16. Rails的用户认证支持,NOT授权
- 17. rails - 认证,授权和审计confoussion
- 18. Unity3d检查用户是否已授权设备摄像头
- 19. REST认证/授权
- 20. PHP CURL授权。如何检查授权ttl是否已过期?
- 21. 的Rails 3 - 基本的HTTP认证VS认证令牌与iPhone
- 22. 与Volley Android库Http基本授权
- 23. 使用EWS检查Exchange用户授权
- 24. HTTP基本认证头
- 25. Apache http基本认证?
- 26. Android http基本认证
- 27. Padrino基本用户认证
- 28. 认证/授权是否阻止Jquery调用页面方法?
- 29. AJAX + jQuery + SAP认证+基本认证= 401未经授权。 (代码+图片)
- 30. OAuth2:JWT授权授权和客户端凭证授权与JWT客户端认证有什么区别?
谢谢你,你是对的。我是如何犯这个错误的。希望没有多少人受到影响。 对不起,改变正确的答案这么晚了。我没有注意到这个通知。 – Vitaly