Module: Reactor::SessionHelper::AuthHelper

Defined in:
lib/reactor/session_helper/auth_helper.rb

Instance Method Summary collapse

Instance Method Details

#rsession_authObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/reactor/session_helper/auth_helper.rb', line 4

def rsession_auth
  if RailsConnector::Configuration.mode == :editor && (jsessionid = cookies["JSESSIONID"]).present?
    # Why the gsub? It's a dirty hack! Reason: JSESSIONIDs are unescaped
    # when read through Rails and hence all + are converted into spaces.
    # CM Kernel though stores escaped IDs.
    # From the possible generated characters only the + seems to be
    # problematic.
    # CGI.escape would be the solution, but it's deprecated
    # URI.escape does too much
    jsessionid.tr!(" ", "+")

    Rails.logger.info "Trying to log in at #{Reactor::Configuration.xml_access[:host]}:#{Reactor::Configuration.xml_access[:port]} with JSESSIONID=#{jsessionid}."
    rsession.(jsessionid)
    Rails.logger.info %(Logged in as "#{rsession.user_name}".) if rsession.user?
  else
    rsession.destroy
  end
end