<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en" > <head> <meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> <title> Class: Auth::Middleware — Documentation by YARD 0.8.7.6 </title> <link rel = "stylesheet" href = "../css/style.css" type = "text/css" charset = "utf-8" /> <link rel = "stylesheet" href = "../css/common.css" type = "text/css" charset = "utf-8" /> <script type = "text/javascript" charset = "utf-8" > hasFrames = window . top . frames . main ? true : false ; relpath = '../' ; framesUrl = "../frames.html#!Auth/Middleware.html" ; </script> <script type = "text/javascript" charset = "utf-8" src = "../js/jquery.js" ></script> <script type = "text/javascript" charset = "utf-8" src = "../js/app.js" ></script> </head> <body> <div id = "header" > <div id = "menu" > <a href = "../_index.html" > Index (M) </a> » <span class = 'title' ><span class = 'object_link' ><a href = "../Auth.html" title = "Auth (module)" > Auth </a></span></span> » <span class = "title" > Middleware </span> <div class = "noframes" ><span class = "title" > ( </span><a href = "." target = "_top" > no frames </a><span class = "title" > ) </span></div> </div> <div id = "search" > <a class = "full_list_link" id = "class_list_link" href = "../class_list.html" > Class List </a> <a class = "full_list_link" id = "method_list_link" href = "../method_list.html" > Method List </a> <a class = "full_list_link" id = "file_list_link" href = "../file_list.html" > File List </a> </div> <div class = "clear" ></div> </div> <iframe id = "search_frame" ></iframe> <div id = "content" ><h1> Class: Auth::Middleware </h1> <dl class = "box" > <dt class = "r1" > Inherits: </dt> <dd class = "r1" > <span class = "inheritName" > Object </span> <ul class = "fullTree" > <li> Object </li> <li class = "next" > Auth::Middleware </li> </ul> <a href = "#" class = "inheritanceTree" > show all </a> </dd> <dt class = "r2 last" > Defined in: </dt> <dd class = "r2 last" > lib/auth/middleware.rb </dd> </dl> <div class = "clear" ></div> <h2> Overview </h2><div class = "docstring" > <div class = "discussion" > <p> We setup our middleware to generally require Basic authentication that indicates our Perforce login and ticket. </p> <p> This should be applied <em> after </em> HWSSettings, since we might not know which server we are connecting to. </p> </div> </div> <div class = "tags" > </div> <h2> Instance Method Summary <small> ( <a href = "#" class = "summary_toggle" > collapse </a> ) </small> </h2> <ul class = "summary" > <li class = "public " > <span class = "summary_signature" > <a href = "#call-instance_method" title = "#call (instance method)" > - (Object) <strong> call </strong> (env) </a> </span> <span class = "summary_desc" ><div class = 'inline' ></div></span> </li> <li class = "public " > <span class = "summary_signature" > <a href = "#check_and_establish_p4_session-instance_method" title = "#check_and_establish_p4_session (instance method)" > - (Object) <strong> check_and_establish_p4_session </strong> (env, auth) </a> </span> <span class = "summary_desc" ><div class = 'inline' ></div></span> </li> <li class = "public " > <span class = "summary_signature" > <a href = "#initialize-instance_method" title = "#initialize (instance method)" > - (Middleware) <strong> initialize </strong> (app, options = {}) </a> </span> <span class = "note title constructor" > constructor </span> <span class = "summary_desc" ><div class = 'inline' > <p> A new instance of Middleware. </p> </div></span> </li> <li class = "public " > <span class = "summary_signature" > <a href = "#unauthenticated_error-instance_method" title = "#unauthenticated_error (instance method)" > - (Object) <strong> unauthenticated_error </strong> </a> </span> <span class = "summary_desc" ><div class = 'inline' ></div></span> </li> <li class = "public " > <span class = "summary_signature" > <a href = "#unauthenticated_path%3F-instance_method" title = "#unauthenticated_path? (instance method)" > - (Boolean) <strong> unauthenticated_path? </strong> (env) </a> </span> <span class = "summary_desc" ><div class = 'inline' ></div></span> </li> </ul> <div id = "constructor_details" class = "method_details_list" > <h2> Constructor Details </h2> <div class = "method_details first" > <h3 class = "signature first" id = "initialize-instance_method" > - ( <tt><span class = 'object_link' ><a href = "" title = "Auth::Middleware (class)" > Middleware </a></span></tt> ) <strong> initialize </strong> (app, options = {}) </h3><div class = "docstring" > <div class = "discussion" > <p> Returns a new instance of Middleware </p> </div> </div> <div class = "tags" > </div><table class = "source_code" > <tr> <td> <pre class = "lines" > 11 12 13 14 15 16 17 </pre> </td> <td> <pre class = "code" ><span class = "info file" > # File 'lib/auth/middleware.rb', line 11 </span> <span class = 'kw' > def </span> <span class = 'id identifier rubyid_initialize' > initialize </span><span class = 'lparen' > ( </span><span class = 'id identifier rubyid_app' > app </span><span class = 'comma' > , </span> <span class = 'id identifier rubyid_options' > options </span> <span class = 'op' > = </span> <span class = 'lbrace' > { </span><span class = 'rbrace' > } </span><span class = 'rparen' > ) </span> <span class = 'ivar' > @app </span> <span class = 'op' > = </span> <span class = 'id identifier rubyid_app' > app </span> <span class = 'ivar' > @unauthenticated_paths </span> <span class = 'op' > = </span> <span class = 'lbracket' > [ </span><span class = 'rbracket' > ] </span> <span class = 'kw' > if </span> <span class = 'id identifier rubyid_options' > options </span><span class = 'lbracket' > [ </span><span class = 'symbol' > :unauthenticated_paths </span><span class = 'rbracket' > ] </span> <span class = 'ivar' > @unauthenticated_paths </span><span class = 'period' > . </span><span class = 'id identifier rubyid_concat' > concat </span><span class = 'lparen' > ( </span><span class = 'id identifier rubyid_options' > options </span><span class = 'lbracket' > [ </span><span class = 'symbol' > :unauthenticated_paths </span><span class = 'rbracket' > ] </span><span class = 'rparen' > ) </span> <span class = 'kw' > end </span> <span class = 'kw' > end </span></pre> </td> </tr> </table> </div> </div> <div id = "instance_method_details" class = "method_details_list" > <h2> Instance Method Details </h2> <div class = "method_details first" > <h3 class = "signature first" id = "call-instance_method" > - ( <tt> Object </tt> ) <strong> call </strong> (env) </h3><table class = "source_code" > <tr> <td> <pre class = "lines" > 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 </pre> </td> <td> <pre class = "code" ><span class = "info file" > # File 'lib/auth/middleware.rb', line 19 </span> <span class = 'kw' > def </span> <span class = 'id identifier rubyid_call' > call </span><span class = 'lparen' > ( </span><span class = 'id identifier rubyid_env' > env </span><span class = 'rparen' > ) </span> <span class = 'kw' > return </span> <span class = 'ivar' > @app </span><span class = 'period' > . </span><span class = 'id identifier rubyid_call' > call </span><span class = 'lparen' > ( </span><span class = 'id identifier rubyid_env' > env </span><span class = 'rparen' > ) </span> <span class = 'kw' > if </span> <span class = 'id identifier rubyid_unauthenticated_path?' > unauthenticated_path? </span><span class = 'lparen' > ( </span><span class = 'id identifier rubyid_env' > env </span><span class = 'rparen' > ) </span> <span class = 'id identifier rubyid_auth' > auth </span> <span class = 'op' > = </span> <span class = 'const' > Rack </span><span class = 'op' > :: </span><span class = 'const' > Auth </span><span class = 'op' > :: </span><span class = 'const' > Basic </span><span class = 'op' > :: </span><span class = 'const' > Request </span><span class = 'period' > . </span><span class = 'id identifier rubyid_new' > new </span><span class = 'lparen' > ( </span><span class = 'id identifier rubyid_env' > env </span><span class = 'rparen' > ) </span> <span class = 'kw' > if </span> <span class = 'id identifier rubyid_auth' > auth </span><span class = 'period' > . </span><span class = 'id identifier rubyid_provided?' > provided? </span> <span class = 'op' > && </span> <span class = 'id identifier rubyid_auth' > auth </span><span class = 'period' > . </span><span class = 'id identifier rubyid_basic?' > basic? </span> <span class = 'kw' > if </span> <span class = 'const' > HWSSettings </span><span class = 'period' > . </span><span class = 'id identifier rubyid_system' > system </span><span class = 'period' > . </span><span class = 'const' > ENABLE_HELIX_CLOUD_AUTH </span> <span class = 'comment' > # TODO(HelixCloud) - Validate ticket, then check AUTH_CREDENTIALS, </span> <span class = 'comment' > # p4, and p4.user as needed. </span> <span class = 'kw' > else </span> <span class = 'kw' > begin </span> <span class = 'id identifier rubyid_check_and_establish_p4_session' > check_and_establish_p4_session </span><span class = 'lparen' > ( </span><span class = 'id identifier rubyid_env' > env </span><span class = 'comma' > , </span> <span class = 'id identifier rubyid_auth' > auth </span><span class = 'rparen' > ) </span> <span class = 'kw' > rescue </span> <span class = 'const' > P4Exception </span> <span class = 'id identifier rubyid_env' > env </span><span class = 'lbracket' > [ </span><span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > AUTH_CREDENTIALS </span><span class = 'tstring_end' > ' </span></span><span class = 'rbracket' > ] </span> <span class = 'op' > = </span> <span class = 'kw' > nil </span> <span class = 'id identifier rubyid_env' > env </span><span class = 'lbracket' > [ </span><span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > p4 </span><span class = 'tstring_end' > ' </span></span><span class = 'rbracket' > ] </span> <span class = 'op' > = </span> <span class = 'kw' > nil </span> <span class = 'kw' > return </span> <span class = 'id identifier rubyid_unauthenticated_error' > unauthenticated_error </span> <span class = 'kw' > end </span> <span class = 'kw' > end </span> <span class = 'kw' > return </span> <span class = 'ivar' > @app </span><span class = 'period' > . </span><span class = 'id identifier rubyid_call' > call </span><span class = 'lparen' > ( </span><span class = 'id identifier rubyid_env' > env </span><span class = 'rparen' > ) </span> <span class = 'kw' > end </span> <span class = 'id identifier rubyid_unauthenticated_error' > unauthenticated_error </span> <span class = 'kw' > end </span></pre> </td> </tr> </table> </div> <div class = "method_details " > <h3 class = "signature " id = "check_and_establish_p4_session-instance_method" > - ( <tt> Object </tt> ) <strong> check_and_establish_p4_session </strong> (env, auth) </h3><table class = "source_code" > <tr> <td> <pre class = "lines" > 44 45 46 47 48 49 50 51 52 53 </pre> </td> <td> <pre class = "code" ><span class = "info file" > # File 'lib/auth/middleware.rb', line 44 </span> <span class = 'kw' > def </span> <span class = 'id identifier rubyid_check_and_establish_p4_session' > check_and_establish_p4_session </span><span class = 'lparen' > ( </span><span class = 'id identifier rubyid_env' > env </span><span class = 'comma' > , </span> <span class = 'id identifier rubyid_auth' > auth </span><span class = 'rparen' > ) </span> <span class = 'id identifier rubyid_env' > env </span><span class = 'lbracket' > [ </span><span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > AUTH_CREDENTIALS </span><span class = 'tstring_end' > ' </span></span><span class = 'rbracket' > ] </span> <span class = 'op' > = </span> <span class = 'id identifier rubyid_auth' > auth </span><span class = 'period' > . </span><span class = 'id identifier rubyid_credentials' > credentials </span> <span class = 'id identifier rubyid_p4' > p4 </span> <span class = 'op' > = </span> <span class = 'const' > P4Util </span><span class = 'period' > . </span><span class = 'id identifier rubyid_open_from_env' > open_from_env </span><span class = 'lparen' > ( </span><span class = 'id identifier rubyid_env' > env </span><span class = 'rparen' > ) </span> <span class = 'id identifier rubyid_p4' > p4 </span><span class = 'period' > . </span><span class = 'id identifier rubyid_connect' > connect </span> <span class = 'id identifier rubyid_results' > results </span> <span class = 'op' > = </span> <span class = 'id identifier rubyid_p4' > p4 </span><span class = 'period' > . </span><span class = 'id identifier rubyid_run_user' > run_user </span><span class = 'lparen' > ( </span><span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > -o </span><span class = 'tstring_end' > ' </span></span><span class = 'rparen' > ) </span> <span class = 'id identifier rubyid_env' > env </span><span class = 'lbracket' > [ </span><span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > p4.user </span><span class = 'tstring_end' > ' </span></span><span class = 'rbracket' > ] </span> <span class = 'op' > = </span> <span class = 'id identifier rubyid_results' > results </span><span class = 'period' > . </span><span class = 'id identifier rubyid_first' > first </span> <span class = 'id identifier rubyid_env' > env </span><span class = 'lbracket' > [ </span><span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > p4 </span><span class = 'tstring_end' > ' </span></span><span class = 'rbracket' > ] </span> <span class = 'op' > = </span> <span class = 'id identifier rubyid_p4' > p4 </span> <span class = 'kw' > end </span></pre> </td> </tr> </table> </div> <div class = "method_details " > <h3 class = "signature " id = "unauthenticated_error-instance_method" > - ( <tt> Object </tt> ) <strong> unauthenticated_error </strong> </h3><table class = "source_code" > <tr> <td> <pre class = "lines" > 63 64 65 66 67 68 69 70 71 </pre> </td> <td> <pre class = "code" ><span class = "info file" > # File 'lib/auth/middleware.rb', line 63 </span> <span class = 'kw' > def </span> <span class = 'id identifier rubyid_unauthenticated_error' > unauthenticated_error </span> <span class = 'lbracket' > [ </span> <span class = 'int' > 403 </span><span class = 'comma' > , </span> <span class = 'lbrace' > { </span> <span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > Content-Type </span><span class = 'tstring_end' > ' </span></span> <span class = 'op' > => </span> <span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > text/plain </span><span class = 'tstring_end' > ' </span></span><span class = 'comma' > , </span> <span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > Content-Length </span><span class = 'tstring_end' > ' </span></span> <span class = 'op' > => </span> <span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > 0 </span><span class = 'tstring_end' > ' </span></span><span class = 'comma' > , </span> <span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > WWW-Authenticate </span><span class = 'tstring_end' > ' </span></span> <span class = 'op' > => </span> <span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > Basic realm="Perforce Web API" </span><span class = 'tstring_end' > ' </span></span> <span class = 'rbrace' > } </span><span class = 'comma' > , </span> <span class = 'lbracket' > [ </span><span class = 'rbracket' > ] </span> <span class = 'rbracket' > ] </span> <span class = 'kw' > end </span></pre> </td> </tr> </table> </div> <div class = "method_details " > <h3 class = "signature " id = "unauthenticated_path?-instance_method" > - ( <tt> Boolean </tt> ) <strong> unauthenticated_path? </strong> (env) </h3><div class = "docstring" > <div class = "discussion" > </div> </div> <div class = "tags" > <p class = "tag_title" > Returns: </p> <ul class = "return" > <li> <span class = 'type' > ( <tt> Boolean </tt> ) </span> </li> </ul> </div><table class = "source_code" > <tr> <td> <pre class = "lines" > 55 56 57 58 59 60 61 </pre> </td> <td> <pre class = "code" ><span class = "info file" > # File 'lib/auth/middleware.rb', line 55 </span> <span class = 'kw' > def </span> <span class = 'id identifier rubyid_unauthenticated_path?' > unauthenticated_path? </span><span class = 'lparen' > ( </span><span class = 'id identifier rubyid_env' > env </span><span class = 'rparen' > ) </span> <span class = 'ivar' > @unauthenticated_paths </span><span class = 'period' > . </span><span class = 'id identifier rubyid_any?' > any? </span> <span class = 'kw' > do </span> <span class = 'op' > | </span><span class = 'id identifier rubyid_pathspec' > pathspec </span><span class = 'op' > | </span> <span class = 'lparen' > ( </span><span class = 'id identifier rubyid_env' > env </span><span class = 'lbracket' > [ </span><span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > REQUEST_METHOD </span><span class = 'tstring_end' > ' </span></span><span class = 'rbracket' > ] </span> <span class = 'op' > == </span> <span class = 'id identifier rubyid_pathspec' > pathspec </span><span class = 'lbracket' > [ </span><span class = 'symbol' > :method </span><span class = 'rbracket' > ] </span><span class = 'rparen' > ) </span> <span class = 'op' > && </span> <span class = 'lparen' > ( </span><span class = 'lparen' > ( </span><span class = 'id identifier rubyid_pathspec' > pathspec </span><span class = 'lbracket' > [ </span><span class = 'symbol' > :path </span><span class = 'rbracket' > ] </span><span class = 'period' > . </span><span class = 'id identifier rubyid_is_a?' > is_a? </span><span class = 'lparen' > ( </span><span class = 'const' > String </span><span class = 'rparen' > ) </span> <span class = 'op' > && </span> <span class = 'id identifier rubyid_pathspec' > pathspec </span><span class = 'lbracket' > [ </span><span class = 'symbol' > :path </span><span class = 'rbracket' > ] </span> <span class = 'op' > == </span> <span class = 'id identifier rubyid_env' > env </span><span class = 'lbracket' > [ </span><span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > PATH_INFO </span><span class = 'tstring_end' > ' </span></span><span class = 'rbracket' > ] </span><span class = 'rparen' > ) </span> <span class = 'op' > || </span> <span class = 'lparen' > ( </span><span class = 'id identifier rubyid_pathspec' > pathspec </span><span class = 'lbracket' > [ </span><span class = 'symbol' > :path </span><span class = 'rbracket' > ] </span><span class = 'period' > . </span><span class = 'id identifier rubyid_is_a?' > is_a? </span><span class = 'lparen' > ( </span><span class = 'const' > Regexp </span><span class = 'rparen' > ) </span> <span class = 'op' > && </span> <span class = 'id identifier rubyid_pathspec' > pathspec </span><span class = 'lbracket' > [ </span><span class = 'symbol' > :path </span><span class = 'rbracket' > ] </span><span class = 'period' > . </span><span class = 'id identifier rubyid_match' > match </span><span class = 'lparen' > ( </span><span class = 'id identifier rubyid_env' > env </span><span class = 'lbracket' > [ </span><span class = 'tstring' ><span class = 'tstring_beg' > ' </span><span class = 'tstring_content' > PATH_INFO </span><span class = 'tstring_end' > ' </span></span><span class = 'rbracket' > ] </span><span class = 'rparen' > ) </span><span class = 'rparen' > ) </span><span class = 'rparen' > ) </span> <span class = 'kw' > end </span> <span class = 'kw' > end </span></pre> </td> </tr> </table> </div> </div> </div> <div id = "footer" > Generated on Tue Sep 15 01:20:29 2015 by <a href = "http://yardoc.org" title = "Yay! A Ruby Documentation Tool" target = "_parent" > yard </a> 0.8.7.6 (ruby-2.2.3). </div> </body> </html>
#
Change
User
Description
Committed
#1
15741
ptomiak
Branch HWS for my use.
10 years ago