summaryrefslogtreecommitdiff
path: root/sample/soap/authheader/authmgr.rb
blob: a4d3b66c0d76740878b04c50d2802643d1cd5078 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class Authmgr
  def initialize
    @users = {
      'NaHi' => 'passwd',
      'HiNa' => 'wspass'
    }
    @sessions = {}
  end

  def login(userid, passwd)
    userid and passwd and @users[userid] == passwd
  end

  # returns userid
  def auth(sessionid)
    @sessions[sessionid]
  end

  def create_session(userid)
    while true
      key = create_sessionkey
      break unless @sessions[key]
    end
    @sessions[key] = userid
    key
  end

  def get_session(userid)
    @sessions.index(userid)
  end

  def destroy_session(sessionkey)
    @sessions.delete(sessionkey)
  end

private

  def create_sessionkey
    Time.now.usec.to_s
  end
end