29/01/10 14:07:36 (11 years ago)
  • #1088 Important fix to AuthnRedirectResponseMiddleware? to set redirect ONLY when SSL client authentication has just succeeded in the upstream middleware AuthKitSSLAuthnMiddleware. This bug was causing the browser to redirect to the wrong place following OpenID sign in in the case where the user is already logged into their provider and selects a new relying party to sign into.
    • Improvements to Provider decide page interface: leave out messages about attributes that the provider can't retrieve for the RP. Also included NDG style help icon.
1 edited


  • TI12-security/trunk/NDGSecurity/python/ndg_security_server/ndg/security/server/wsgi/openid/provider/renderinginterface/genshi/templates/decide.html

    r6272 r6440  
    2727                                    <td> 
    2828                                                This site has also requested some additional information: 
    29                                          <table id="opAXRequestedAttributes"> 
     29                                        <span> 
     30                                                <a href="javascript:;" title="Toggle help" onclick="toggleDiv(1,'axHelp','shown','hidden','div'); return false;"> 
     31                                                        <img src="/layout/icons/help.png" alt="Toggle help" class="helpicon"/></a> 
     32                                        </span> 
     33                                        <div id="axHelp" class="hidden"> 
     34                                                <div class="helptxt"> 
     35                                                        <p>The site where you want to sign in has requested some additional 
     36                                                                information as well as your OpenID.  Review the list of items below. 
     37                                                                The righthand column, "Return Item to Requesting Site?" has a tick box 
     38                                                                assigned to each item.  By unticking a given box you can prevent the 
     39                                                                related item from being returned to the requested site.  However, for 
     40                                                                some items, the tick box may be disabled.  This indicates that the  
     41                                                                requesting site has marked this item as mandatory.  In this case, 
     42                                                                you can still choose the "No" button at the bottom off this form and 
     43                                                                cancel sign in to the given site.</p> 
     44                                                        <p>If you are otherwise happy to return the requested information,  
     45                                                                select the "Yes" button</p> 
     46                                                </div> 
     47                                        </div>                               
     48                                        <table id="opAXRequestedAttributes"> 
    3049                                                <tr> 
    3150                                                    <th>Item</th> 
    3352                                                    <th>Return Item to Requesting Site?</th> 
    3453                                                </tr> 
    35                                                                         <tr py:for="i in axRequestedAttr.values()"> 
    36                                                                             <td>${i.alias or i.type_uri}</td> 
     54                                                <?python 
     55                                                        # Only get those attributes that it was possible to retrieve  
     56                                                        # values for 
     57                                                        requestedVals = [i for i in axRequestedAttr.values()  
     58                                                                         if axFetchResponse.getSingle(i.type_uri)] 
     59                                                ?> 
     60                                                <tr py:for="i in requestedVals"> 
    3761                                                                            <?python 
    38                                                                                defaultVal = "<information not available from this site>" 
    39                                                                                attrVal = axFetchResponse.getSingle(i.type_uri, default=defaultVal) 
    4162                                                                               # Disable checkbox if attribute is required and not optional 
    4263                                                                               nameAttr = 'ax.%s' % i.alias 
    4364                                                                               if i.required: 
    44                                                                                    inputAttr = {'disabled': 'disabled'} 
     65                                                                                   inputAttr = {'disabled': 'disabled', 'checked': "checked"} 
    4566                                                                               else: 
    4667                                                                                   inputAttr = {'id': i.alias, 'name': nameAttr, 'value': i.type_uri} 
    48                                                                                if attrVal == defaultVal: 
    49                                                                                    inputAttr.update({'disabled': 'disabled'}) 
    50                                                                                else: 
    51                                                                                    inputAttr.update({'checked': "checked"}) 
    5268                                                                            ?> 
    53                                                                                 <td>${attrVal}</td> 
     69                                                                            <td>${i.alias or i.type_uri}</td> 
     70                                                        <td>${axFetchResponse.getSingle(i.type_uri)}</td> 
    5471                                                                                <!-- hidden input is required to force the setting of disabled checkbox values --> 
    55                                                                             <td><input type="checkbox"  py:attrs="inputAttr"/> 
     72                                                                                <td><input type="checkbox"  py:attrs="inputAttr"/> 
    5673                                                                                <input py:if="i.required" type="hidden" value="${i.type_uri}" name="$nameAttr"/></td> 
    5774                                                                        </tr>  
Note: See TracChangeset for help on using the changeset viewer.