diff options
Diffstat (limited to 'sample/soap/authheader/authmgr.rb')
-rw-r--r-- | sample/soap/authheader/authmgr.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/sample/soap/authheader/authmgr.rb b/sample/soap/authheader/authmgr.rb new file mode 100644 index 0000000000..a4d3b66c0d --- /dev/null +++ b/sample/soap/authheader/authmgr.rb @@ -0,0 +1,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 |