Maison  >  Questions et réponses  >  le corps du texte

ruby - rails限制多个IP访问的方法?

对某一个action的IP的限制方式是,在routes.rb中:

  constraints(:ip => Settings.ip.allow) do
     post '/somecontroller/callback', to: 'somecontroller#callback' , as: 'somecontroller_callback'
  end

在settings.yml中:

  ip:
    allow: '127.0.0.1'

这是可以的.

但是想对多个IP允许访问,在settings.yml中如下:

  ip:
    allow: '/127.0.0.1|127.0.0.2/'

却不行。哪里不对呢?

黄舟黄舟2712 Il y a quelques jours566

répondre à tous(1)je répondrai

  • 黄舟

    黄舟2017-04-21 11:00:01

    Parce que Settings.ip.allow renvoie toujours String, mais en fait, dans le second cas, ce dont vous avez besoin est une RegExp, donc elle n'est pas valide. Vous pouvez essayer de le changer comme ceci :

    config/routes.rb :

    constraints(:ip => %r{#{Settings.ip.allow}}) do
     post '/somecontroller/callback', to: 'somecontroller#callback' , as: 'somecontroller_callback'
    end
    

    config/settings.rb

    ip:
      allow: '127.0.0.1|127.0.0.2'
    

    répondre
    0
  • Annulerrépondre