gpt4 book ai didi

ruby - 通过 Rack::Auth::Basic 有选择地允许某些 url

转载 作者:数据小太阳 更新时间:2023-10-29 06:40:49 26 4
gpt4 key购买 nike

我已经建立了一个我希望得到最低限度安全保护的博客(即,我只是想将我不认识的随机人员拒之门外,我并没有尝试实现类似 NSA 的安全措施)。我正在使用 toto使用 Rack::Auth::Basic 来“保护”站点。我想通过 index.xml 以便博客读者能够在不处理密码的情况下阅读提要(是的,我知道这是我的“安全性”中的一个大漏洞) .

如何让 Rack::Auth::Basic 通过这个 url?

这就是我向网站添加基本身份验证的方式:

use Rack::Auth::Basic, "blog" do |username, password|
[username, password] == ['generic', 'stupidanddumbpassword']
end

最佳答案

一些好的老式继承怎么样? Rack::Auth::Basic 是一个简单的 Rack 应用程序(来源:https://github.com/rack/rack/blob/master/lib/rack/auth/basic.rb),因此当请求路径与“/index.xml”匹配时,可以覆盖#call 方法并跳过身份验证:

class BlogAuth < Rack::Auth::Basic

def call(env)
request = Rack::Request.new(env)
case request.path
when '/index.xml'
@app.call(env) # skip auth
else
super # perform auth
end
end

end

use BlogAuth, "blog" do |username, password|
[username, password] == ['generic', 'stupidanddumbpassword']
end

有关 Rack 的更多背景信息,请查看:http://rack.rubyforge.org/doc/SPEC.html

我还没有尝试过@Iain 关于 Rack::URLMap 的建议,但看起来它也是一个不错的选择。

关于ruby - 通过 Rack::Auth::Basic 有选择地允许某些 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6049414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com