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.