| Module | WSSE |
| In: |
lib/wsse.rb
|
Authorize X-WSSE header with password
# File lib/wsse.rb, line 43
43: def auth(request, password, expire=nil)
44: h_header = self.parse(request)
45: unless nil==expire
46: false if (Time.parse(h_header['created']) -Time.now ) >= expire
47: end
48: false if nil==h_header
49:
50: h_header['pd'] == [Digest::SHA1.digest(h_header['nonce'].unpack('m')[0] + h_header['created'] + password)].pack("m").chomp
51: end
Generate X-WSSE header with name and password
# File lib/wsse.rb, line 15
15: def header(username, password)
16: nonce = Array.new(10){ rand(0x100000000) }.pack('I*')
17: nonce_base64 = [nonce].pack("m").chomp
18: created = Time.now.utc.iso8601
19: pd = [Digest::SHA1.digest(nonce + created + password)].pack("m").chomp
20:
21: 'UsernameToken Username="' + username\
22: + '", PasswordDigest="' + pd\
23: + '", Nonce="' + nonce_base64\
24: + '", Created="' + created + '"'\
25: end