Class: BasicAndNego::Processor

Inherits:
Object
  • Object
show all
Defined in:
lib/basic_and_nego/processor.rb

Constant Summary collapse

DEFAULT_SERVICE =
"http@#{Socket::gethostname}"

Instance Method Summary collapse

Constructor Details

#initialize(env, logger, realm, keytab, service) ⇒ Processor

Returns a new instance of Processor.



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/basic_and_nego/processor.rb', line 9

def initialize(env, logger, realm, keytab, service)
  @env = env
  @logger = logger
  @realm = realm
  @keytab = keytab
  @service = service || DEFAULT_SERVICE

  @request = BasicAndNego::Request.new(@env)
  @authenticator = @request.authenticator.new(@request, @logger, @realm, @keytab, @service)
  @session = @env['rack.session']
end

Instance Method Details

#client_nameObject



35
36
37
# File 'lib/basic_and_nego/processor.rb', line 35

def client_name
  @authenticator.client_name
end

#headersObject



39
40
41
# File 'lib/basic_and_nego/processor.rb', line 39

def headers
  @authenticator.headers || {}
end

#process_requestObject



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/basic_and_nego/processor.rb', line 21

def process_request
  if authenticated
    @logger.debug "User #{@session['REMOTE_USER']} already authenticated"
    @env['REMOTE_USER'] = @session['REMOTE_USER']
  else
    @logger.debug "User not authenticated : delegate to authenticator"

    if authenticate
      @env['REMOTE_USER'] = client_name
      @session['REMOTE_USER'] = client_name if @session
    end
  end
end

#responseObject



43
44
45
# File 'lib/basic_and_nego/processor.rb', line 43

def response
  @authenticator.response
end