ruby - rails限制多个IP访问的方法?
黄舟
黄舟 2017-04-21 10:58:01
0
1
642

对某一个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/'

却不行。哪里不对呢?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(1)
黄舟

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'
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal