MailCatcher 中的基本身份验证Ruby、瘦服务器

问题描述

我被要求在 mailcatcher 服务器中实现基本身份验证,mailcatcher 是用 Ruby 编写的,所以我在谷歌上搜索了如何添加基本身份验证,我发现了这个: https://gist.github.com/yous/40d8e18b33dfb62966c3e1e343f11a96

Mailcatcher 也使用 Thin server,所以我复制了 use Rack::Auth::Basic 块,像这样:


      # Let Thin set itself up inside our EventMachine loop
      # (Skinny/WebSockets just works on the inside)
      rescue_port options[:http_port] do
        Thin::Server.start(options[:http_ip],options[:http_port],Web) do
          use Rack::Auth::Basic,'Protected Area' do |username,password|
            username == 'USERNAME' && password == 'PASSWORD'
          end
        end
        
        puts "==> #{http_url}"
      end

但是当我尝试在终端中运行 mailcatcher 时,出现此错误

/home/.../.rvm/gems/ruby-2.6.3/gems/rack-1.6.13/lib/rack/builder.rb:146:in `to_app': missing run or map statement (RuntimeError)

这发生在 Rack 的 builder.rb 文件中,在这方法中:

    def to_app
      app = @map ? generate_map(@run,@map) : @run
      fail "missing run or map statement" unless app
      app = @use.reverse.inject(app) { |a,e| e[a] }
      @warmup.call(app) if @warmup
      app
    end

所以似乎没有@map 或@run,如果我理解正确的话,这些是实例变量。在使用 Rack::Auth::Basic 之前,有没有办法设置它们?

这是我第一次查看 ruby​​ 代码,所以也许我只是缺乏一些可以帮助我进行设置的基本概念,所以我很感激任何帮助 :)

非常感谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)