Subversion Info

Rev
437
Last Checked In
2008-03-28 00:49:20 (2 weeks ago)
Checked in by
deveiant

Methods

Class Index

Quicksearch

Arrow::Session::UserTrackId

A session id object which uses Apache‘s builtin mod_usertrack id..

Constants

SVNRev
SVN Revision
SVNId
SVN Id

Public Class Methods

generate( uri, request ) click to toggle source

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
validate( uri, idstring ) click to toggle source

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

secsequence

--- SEC00121

seccomment

--- ""

method_list

--- 
- 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\">&quot;No cookie named '%s' was found. Make sure &quot;</span>\\\n\
      60:                 <span class=\"ruby-value str\">&quot;mod_usertrack is enabled and configured correctly&quot;</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

sectitle

--- 

constants

--- 
- 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 $"

[Validate]

Generated with the Darkfish Rdoc Generator.