Changeset 5084


Ignore:
Timestamp:
09/03/09 16:20:32 (10 years ago)
Author:
pjkersha
Message:

ndg.security.test.integration.openid - combined OpenID Provider and Relying Party in same WSGI stack: improvements to interface

Location:
TI12-security/trunk/python
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/__init__.py

    r5037 r5084  
    3535        self._pathInfo = None 
    3636        self._path = None 
     37        self._mountPath = '/' 
    3738         
    3839        opt = self.__class__.propertyDefaults.copy() 
     
    8485                                          contentType=notFoundMsgContentType) 
    8586             
    86     def _setErrorResponse(self, environ, start_response, msg=None, code=500, 
    87                           contentType=None): 
     87    def _setErrorResponse(self, environ=None, start_response=None, msg=None,  
     88                          code=500, contentType=None): 
    8889        '''Convenience method to set a simple error response 
    8990         
     
    100101        'text/plain' 
    101102        ''' 
     103        if environ is None: 
     104            environ = self.environ 
     105             
     106        if start_response is None: 
     107            start_response = self.start_response 
     108             
    102109        status = '%d %s' % (code, httplib.responses[code]) 
    103110        if msg is None: 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/provider/__init__.py

    r5080 r5084  
    658658         
    659659        This method expects the follow fields to have been set in the posted 
    660         form created by the RedneringInterface.decidePage method called by  
     660        form created by the RenderingInterface.decidePage method called by  
    661661        do_decide: 
    662662         
     
    685685            log.error("Suspected do_allow called from stale request") 
    686686            return self._render.errorPage(environ, start_response, 
    687                                           "Invalid request", 
     687                                          "Invalid request.  Please report " 
     688                                          "this fault to your site " 
     689                                          "administrator.", 
    688690                                          code=400) 
    689691         
     
    697699                                                  "An internal error has " 
    698700                                                  "occurred setting the " 
    699                                                   "OpenID user identity") 
     701                                                  "OpenID user identity.  " 
     702                                                  "Please report this fault " 
     703                                                  "to your site " 
     704                                                  "administrator.") 
    700705            else: 
    701706                identity = oidRequest.identity 
     
    780785                              "already logged in", self.session['username'], 
    781786                              self.session['username']) 
    782                     return self._redirect(start_response, self.query['fail_to']) 
     787                    return self._redirect(start_response,self.query['fail_to']) 
    783788                 
    784789                oidRequest = self.session.get('lastCheckIDRequest') 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/relyingparty/signin_interface/buffet/__init__.py

    r4907 r5084  
    3535        'staticContentRootDir': './', 
    3636        'baseURL': 'http://localhost', 
     37        'initialOpenID': '', 
    3738        'logoutURI': '', 
    3839        'leftLogo': None, 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/relyingparty/signin_interface/buffet/templates/signin.kid

    r4905 r5084  
    66                                        <td>OpenID:</td>  
    77                                        <td align="left"> 
    8                                                 <input type="text" name="openid" value="" class='openid-identifier'/> 
     8                                                <input type="text"  
     9                                                        name="openid"  
     10                                                        value="$c.initialOpenID"  
     11                                                        class='openid-identifier'  
     12                                                        size="48"                                                        
     13                                                /> 
    914                                        </td> 
    1015                                        <td align="right"> 
  • TI12-security/trunk/python/ndg.security.test/ndg/security/test/integration/openid/openidrelyingparty/templates/ndgpage.kid

    r5046 r5084  
    77        <title py:content="c.title">title</title> 
    88                ${XML(c.headExtras)} 
    9         <!--! The following includes the javascript, note that the XML 
    10         function is needed to avoid escaping the < character --> 
    11 <!--   
    12         <?python 
    13             # Fudge for WebHelpers migration to 0.6.1 
    14             if hasattr(h, 'javascript_include_tag'): 
    15                 javascript_include_tag = h.javascript_include_tag 
    16             else: 
    17                 javascript_include_tag = h.rails.javascript_include_tag 
    18         ?> 
    19         ${XML(javascript_include_tag(builtins=True))} 
    20         <script type="text/javascript" src="${c.baseURL}/js/toggleDiv.js"/> 
    21 --> 
    22         <link media="all, screen" href="${c.baseURL}/layout/ndg2.css" type="text/css" rel="stylesheet"/> 
    23         <link rel="icon" type="image/ico" href="${c.baseURL}/layout/favicon.jpg" /> 
     9        <link media="all, screen" href="${c.baseURL}/layout/ndg2.css"  
     10            type="text/css" rel="stylesheet"/> 
     11        <link rel="icon" type="image/ico"  
     12            href="${c.baseURL}/layout/favicon.jpg"/> 
    2413    </head> 
    2514 
     
    4130                    ?> 
    4231                    <li class="$status"><span class="pagetab"> 
    43 <!--   
    44                     ${XML(h.link_to_if(linkto,tab[0],tab[1]))} 
    45 --> 
    4632                    </span></li>  
    4733                 </span> 
     
    5137        <div class="clear"/> 
    5238    </div> 
    53     <py if="c.UpdatePageTabs" py:replace="PageTabs(c.current)"/> 
    5439 
    5540    <!-- Page Footer follows --> 
     
    5944                <td align="left" width="60%"> 
    6045                    <table><tbody> 
    61                     <tr><td><span py:replace="linkimage(c.ndgLink,c.ndgImage,'NDG')"/></td> 
    62                     <td>OpenID Provider Site for <a href="http://ndg.nerc.ac.uk"> NERC DataGrid</a> 
    63                     ${c.disclaimer} </td> 
     46                    <tr> 
     47                        <td><span py:replace="linkimage(c.ndgLink,c.ndgImage,'NDG')"/></td> 
     48                        <td>OpenID Service for <a href="http://ndg.nerc.ac.uk">NERC DataGrid</a> 
     49                    ${c.disclaimer}</td> 
    6450                    </tr> 
    6551                    </tbody></table> 
     
    6854                    <div py:if="c.loginStatus" id="loginStatus"> 
    6955                        <!--! now we choose one of the next two (logged in or not) --> 
    70                         <div py:if="'username' in c.session" id="loggedIn"> 
     56                        <div py:if="c.loggedIn" id="loggedIn"> 
    7157                            <table><tbody><tr><td>  
    72                                 <!-- Create link using embedded python  
    73                                     construct because including a link with '&' 
    74                                     directly causes an error 
    75                                 --> 
    76                                 <?python 
    77                                     logOutLink='%s?submit=true&success_to=%s&fail_to=%s' % \ 
    78                                     (c.urls['url_loginsubmit'],  
    79                                      c.urls['url_login'], 
    80                                      c.urls['url_mainpage']) 
    81                                 ?> 
    8258                                Logged in as ${c.session['username']}.  
    83                                 [<a href="$logOutLink"> 
    84                                     Log out 
    85                                 </a>] 
    86                             </td></tr></tbody></table> 
    87                         </div> 
    88                         <div py:if="'username' not in c.session" id="loggedOut"> 
    89                             <table><tbody><tr><td>  
    90                                 Other services may be available if you <a href="${c.urls['url_login']}">login</a>. 
     59                                [<a href="$c.logOutURI">Log out</a>] 
    9160                            </td></tr></tbody></table> 
    9261                        </div> 
  • TI12-security/trunk/python/ndg.security.test/ndg/security/test/integration/openid/openidrelyingparty/templates/signin.kid

    r5046 r5084  
    11<html py:extends="'ndgpage.kid'" xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"> 
     2        <div py:def="loginForm()" class="loginForm" style="text-indent:5px"> 
     3                <p> 
     4                        Enter your login details here or logon from another site using the  
     5                        OpenID sign in section below: 
     6                </p> 
     7                <form action="$c.actionURI" method="POST"> 
     8                        <input type="hidden" name="success_to" value="$c.successToURI" /> 
     9                        <input type="hidden" name="fail_to" value="$c.failToURI" /> 
     10                        <table cellspacing="0" border="0" cellpadding="5"> 
     11                                <tr> 
     12                                        <td>Username:</td>  
     13                                        <td><input type="text" name="username" value=""/></td> 
     14                                </tr><tr> 
     15                                        <td>Password:</td> 
     16                                        <td><input type="password" name="password"/></td> 
     17                                </tr><tr> 
     18                                        <td colspan="2" align="right"> 
     19                                                <input type="submit" name="submit" value="Login"/> 
     20                                                <input type="submit" name="cancel" value="Cancel"/> 
     21                                        </td> 
     22                                </tr> 
     23                        </table> 
     24                </form> 
     25        </div> 
     26 
    227        <div py:def="openIDSignin()" class="openIDSignin" style="text-indent:5px"> 
    328                <form action="$c.baseURL/verify" method="post"> 
     
    3257    <body> 
    3358        <div py:replace="header()"/> 
    34         <replace py:replace="openIDSignin()"/> 
    35         <div py:replace="footer(showLoginStatus=False)"/> 
     59        <div class="signin" style="text-indent:5px"> 
     60                <h2>Login</h2> 
     61                <replace py:replace="loginForm()"/> 
     62                <h2>Sign in from another trusted site</h2> 
     63                <p>If you don't have an account with this site but you have an  
     64                        <a href="http://openid.net/">OpenID</a> 
     65                        you can use this to sign in instead: 
     66                </p> 
     67                <replace py:replace="openIDSignin()"/> 
     68                $c.xml 
     69        </div> 
     70        <div py:replace="footer(showLoginStatus=False)"/> 
    3671    </body> 
    3772</html> 
  • TI12-security/trunk/python/ndg.security.test/ndg/security/test/integration/openid/securityservices.ini

    r5080 r5084  
    1919scheme = http 
    2020baseURI = %(scheme)s://%(hostname)s:%(portNum)s 
     21openIDProviderIDBase = /openid 
     22openIDProviderIDSelectURI = %(baseURI)s%(openIDProviderIDBase)s 
    2123testConfigDir = %(here)s/../../config 
    2224 
     
    191193openid.relyingparty.sessionKey = beaker.session 
    192194openid.relyingparty.baseURL = %(authkit.openid.baseurl)s 
     195#openid.relyingparty.signinInterfaceMiddlewareClass = ndg.security.test.integration.openid.openidrelyingparty.signin_interface.CombinedSigninAndLoginInterface 
     196#openid.relyingparty.signinInterface.templatePackage = ndg.security.test.integration.openid.openidrelyingparty.templates 
    193197openid.relyingparty.signinInterfaceMiddlewareClass = ndg.security.server.wsgi.openid.relyingparty.signin_interface.buffet.BuffetSigninTemplate 
    194198openid.relyingparty.signinInterface.templatePackage = ndg.security.server.wsgi.openid.relyingparty.signin_interface.buffet.templates 
    195199openid.relyingparty.signinInterface.staticContentRootDir = %(here)s/openidrelyingparty/public 
    196200openid.relyingparty.signinInterface.baseURL = %(openid.relyingparty.baseURL)s 
     201openid.relyingparty.signinInterface.initialOpenID = %(openIDProviderIDSelectURI)s 
    197202openid.relyingparty.signinInterface.leftLogo = %(openid.relyingparty.signinInterface.baseURL)s/layout/NERC_Logo.gif 
    198203openid.relyingparty.signinInterface.leftAlt = Natural Environment Research Council 
     
    236241# buffet.BuffetRendering class 
    237242openid.provider.path.id=/OpenID/Provider/id/${userIdentifier} 
    238 openid.provider.path.yadis=/openid/${userIdentifier} 
     243openid.provider.path.yadis=%(openIDProviderIDBase)s/${userIdentifier} 
    239244 
    240245# Yadis based discovery for idselect mode - this is where the user has entered 
     
    242247# full ID URI.  e.g. https://badc.nerc.ac.uk instead of  
    243248# https://badc.nerc.ac.uk/John 
    244 openid.provider.path.serveryadis=/openid 
     249openid.provider.path.serveryadis=%(openIDProviderIDBase)s 
    245250openid.provider.path.allow=/OpenID/Provider/allow 
    246251openid.provider.path.decide=/OpenID/Provider/decide 
Note: See TracChangeset for help on using the changeset viewer.