A session id object which uses Apache‘s builtin mod_usertrack id..
Generate a new id string for the given request
# File /Users/ged/source/ruby/Arrow/lib/arrow/session/usertrackid.rb, line 51
51: def self::generate( uri, request )
52: if uri.path
53: cookieName = uri.path.sub( %r{^/}, '' )
54: else
55: cookieName = 'Apache'
56: end
57:
58: unless request.cookies.key?( cookieName )
59: raise SessionError, "No cookie named '%s' was found. Make sure "\
60: "mod_usertrack is enabled and configured correctly" %
61: cookieName
62: end
63:
64: return validate( uri, request.cookies[cookieName].value )
65: end
Returns an untainted copy of the specified idstring if it is in the expected form for this type of id.
# File /Users/ged/source/ruby/Arrow/lib/arrow/session/usertrackid.rb, line 42
42: def self::validate( uri, idstring )
43: return nil if idstring.nil?
44: rval = idstring[/^[\w.]+\.\d+$/] or return nil?
45: rval.untaint
46: return rval
47: end
--- SEC00121
--- ""
---
- methods:
- visibility: public
aref: M000133
name: generate
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/session/usertrackid.rb, line 51</span>\n\
51: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">generate</span>( <span class=\"ruby-identifier\">uri</span>, <span class=\"ruby-identifier\">request</span> )\n\
52: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">uri</span>.<span class=\"ruby-identifier\">path</span>\n\
53: <span class=\"ruby-identifier\">cookieName</span> = <span class=\"ruby-identifier\">uri</span>.<span class=\"ruby-identifier\">path</span>.<span class=\"ruby-identifier\">sub</span>( <span class=\"ruby-regexp re\">%r{^/}</span>, <span class=\"ruby-value str\">''</span> )\n\
54: <span class=\"ruby-keyword kw\">else</span>\n\
55: <span class=\"ruby-identifier\">cookieName</span> = <span class=\"ruby-value str\">'Apache'</span>\n\
56: <span class=\"ruby-keyword kw\">end</span>\n\
57: \n\
58: <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">request</span>.<span class=\"ruby-identifier\">cookies</span>.<span class=\"ruby-identifier\">key?</span>( <span class=\"ruby-identifier\">cookieName</span> )\n\
59: <span class=\"ruby-identifier\">raise</span> <span class=\"ruby-constant\">SessionError</span>, <span class=\"ruby-value str\">"No cookie named '%s' was found. Make sure "</span>\\\n\
60: <span class=\"ruby-value str\">"mod_usertrack is enabled and configured correctly"</span> <span class=\"ruby-operator\">%</span>\n\
61: <span class=\"ruby-identifier\">cookieName</span>\n\
62: <span class=\"ruby-keyword kw\">end</span>\n\
63: \n\
64: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">validate</span>( <span class=\"ruby-identifier\">uri</span>, <span class=\"ruby-identifier\">request</span>.<span class=\"ruby-identifier\">cookies</span>[<span class=\"ruby-identifier\">cookieName</span>].<span class=\"ruby-identifier\">value</span> )\n\
65: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Generate a new id string for the given request
</p>
params: ( uri, request )
- visibility: public
aref: M000132
name: validate
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/session/usertrackid.rb, line 42</span>\n\
42: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">validate</span>( <span class=\"ruby-identifier\">uri</span>, <span class=\"ruby-identifier\">idstring</span> )\n\
43: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">nil</span> <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">idstring</span>.<span class=\"ruby-identifier\">nil?</span>\n\
44: <span class=\"ruby-identifier\">rval</span> = <span class=\"ruby-identifier\">idstring</span>[<span class=\"ruby-regexp re\">/^[\\w.]+\\.\\d+$/</span>] <span class=\"ruby-keyword kw\">or</span> <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">nil?</span>\n\
45: <span class=\"ruby-identifier\">rval</span>.<span class=\"ruby-identifier\">untaint</span>\n\
46: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">rval</span>\n\
47: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Returns an untainted copy of the specified <tt>idstring</tt> if it is in
the expected form for this type of id.
</p>
params: ( uri, idstring )
category: Class
type: Public
---
---
- name: SVNRev
desc: |+
SVN Revision
value: "%q$Rev: 437 $"
- name: SVNId
desc: |+
SVN <a href="Id.html">Id</a>
value: "%q$Id: usertrackid.rb 437 2008-03-28 00:49:20Z deveiant $"
Generated with the Darkfish Rdoc Generator.