Tag: http authentication

Rails / Rspec Maketesting通过http基本authentication

这里我的应用程序控制器文件(application_controller.rb)中的http基本身份validation before_filter :authenticate protected def authenticate authenticate_or_request_with_http_basic do |username, password| username == "username" && password == "password" end end 和我的家庭控制器的索引行动的默认testing(spec / controllers / home_controller_spec.rb) require 'spec_helper' describe HomeController do describe "GET 'index'" do it "should be successful" do get 'index' response.should be_success end end 由于validation方法,testing不会运行。 我可以评论“before_filter:authenticate”来运行它们,但我想知道是否有办法让它们与方法一起工作。 谢谢!

使用Node和Express进行基本的HTTP身份validation4

它看起来像使用Express v3实现基本的HTTP身份validation是微不足道的: app.use(express.basicAuth('username', 'password')); 版本4(我使用4.2)删除了basicAuth中间件,所以我有点卡住了。 我有下面的代码,但它不会导致浏览器提示用户input凭据,这是我想要的(以及我想象的旧方法): app.use(function(req, res, next) { var user = auth(req); if (user === undefined || user['name'] !== 'username' || user['pass'] !== 'password') { res.writeHead(401, 'Access invalid for user', {'Content-Type' : 'text/plain'}); res.end('Invalid credentials'); } else { next(); } });

CURL访问需要从不同页面login的页面

我有2页: xyz.com/a和xyz.com/b 。 我只能访问xyz.com/b当且仅当我先login到xyz.com/a 。 如果访问xyz.com/b没有通过其他访问,我只是通过浏览器访问被拒绝(没有redirect到login)。 一旦我在xyz.com/alogin,我可以访问其他。 我的问题是使用curl命令。 我可以使用curl成功login到xyz.com/a ,但是请尝试xyx.com/b并且我拒绝访问。 我使用以下内容: curl –user user:pass https://xyz.com/a #works ok curl https://xyz.com/b #doesn't work 我已经尝试使用第二行&没有用户/密码部分,仍然无法正常工作。 这两个页面使用相同的CA,所以这不是一个问题。 有什么build议么? 谢谢

我怎样才能禁止浏览器的身份validation对话框?

我的Web应用程序有一个login页面,通过AJAX调用提交authentication凭证。 如果用户input正确的用户名和密码,一切都很好,但是如果没有的话,会发生以下情况: Web服务器确定,虽然请求包含格式正确的授权标头,但标头中的凭证无法成功进行身份validation。 Web服务器返回一个401状态代码,并包含一个或多个WWW-Authenticate标题,其中列出了支持的authenticationtypes。 浏览器检测到我对XMLHttpRequest对象的调用的响应是401,响应包括WWW-Authenticate标头。 然后popup一个authentication对话框,询问用户名和密码。 直到第3步,这一切都很好。我不想popup对话框,我想要在我的AJAXcallback函数中处理401响应。 (例如,通过在login页面上显示一条错误消息。)我希望用户重新input他们的用户名和密码,当然,但我希望他们看到我友好,令人放心的login表单,而不是浏览器的丑陋,默认authentication对话框。 顺便说一句,我没有控制服务器,所以让它返回一个自定义的状态代码(即,除了401以外的东西)不是一个选项。 有什么办法可以抑制身份validation对话框? 特别是,我可以在Firefox 2或更高版本中禁用“需要身份validation”对话框吗? 有什么办法来抑制在IE 6和以后的连接到[主机]对话框? 编辑 作者补充资料(9月18日): 我应该补充一点,浏览器popup的validation对话框的真正问题是它给用户提供的信息不足。 用户刚刚通过login页面上的表单input了用户名和密码,他认为他已经正确input了他们,并且点击了提交button或者回车。 他的期望是他会被带到下一页,或者被告知他错误地input了他的信息,应该再试一次。 但是,他却出现了一个意想不到的对话框。 该对话不会确认他刚input用户名和密码的事实。 没有明确说明有问题,应该再试一次。 相反,对话框会向用户显示隐藏的信息,如“网站说:' [realm] '”。 其中[realm]是一个只有程序员可以爱的短域名。 网页浏览器devise师注意到:如果对话框本身更简单易用,没有人会问如何取消authentication对话框。 我做login表单的全部原因是我们的产品pipe理团队正确地认为浏览器的authentication对话框是可怕的。