从域和其他子域中隔离一个子域

时间:2018-07-25 14:54:55

标签: ruby-on-rails session-cookies

我正在尝试将子域a.example.orgexample.orgb.example.org隔离

我需要让Cookie会话存储区仅在example.orgb.example.org之间共享,并且我希望a.example.org拥有自己的Cookie会话。

我尝试编写一个Rack中间件,该中间件会将example.orgb.example.org的域设置为等于.example.org并将a.example.org-.a.example.org的域设置为项目-.example.org的范围似乎仍然有.a.example.org

我正在寻找类似的东西

  • a.example.org ----域:a.example.org名称:_session_a

  • example.orgb.example.org ----域:example.org名称_session_root_b

这是我不希望这两个分离对彼此的会话存在有单一的想法。

我的中间件看起来像这样,但是似乎没用:

class DomainSession
  def initialize(app)
    @app = app
  end

  def call(env)
    if env["SERVER_NAME"].start_with?("system.")
      env["rack.session.options"][:domain] = ".#{env["SERVER_NAME"]}"
    else
      env["rack.session.options"][:domain] = env["SERVER_NAME"].split(".").size < 3 ?
                                                 ".#{env["SERVER_NAME"]}" :
                                                 ".#{env["SERVER_NAME"].split(".")[1..-1].join(".")}"
    end
    @app.call(env)
  end
end

0 个答案:

没有答案