source: TI12-security/trunk/documentation/epydoc/ndg.security.client.ndgSessionClient-pysrc.html @ 4245

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI12-security/trunk/documentation/epydoc/ndg.security.client.ndgSessionClient-pysrc.html@4245
Revision 4245, 123.4 KB checked in by pjkersha, 11 years ago (diff)

Working unit tests for WSGI based Attribute Authority.

  • Altered so that all Attribute Config is picked up from the Paste ini file. Separate cfg or xml based config file is still supported.

TODO:

  • Simplify unit test config for client.
Line 
1<?xml version="1.0" encoding="ascii"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3          "DTD/xhtml1-transitional.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5<head>
6  <title>ndg.security.client.ndgSessionClient</title>
7  <link rel="stylesheet" href="epydoc.css" type="text/css" />
8  <script type="text/javascript" src="epydoc.js"></script>
9</head>
10
11<body bgcolor="white" text="black" link="blue" vlink="#204080"
12      alink="#204080">
13<!-- ==================== NAVIGATION BAR ==================== -->
14<table class="navbar" border="0" width="100%" cellpadding="0"
15       bgcolor="#a0c0ff" cellspacing="0">
16  <tr valign="middle">
17  <!-- Home link -->
18      <th>&nbsp;&nbsp;&nbsp;<a
19        href="ndg-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
20
21  <!-- Tree link -->
22      <th>&nbsp;&nbsp;&nbsp;<a
23        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
24
25  <!-- Index link -->
26      <th>&nbsp;&nbsp;&nbsp;<a
27        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
28
29  <!-- Help link -->
30      <th>&nbsp;&nbsp;&nbsp;<a
31        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
32
33  <!-- Project homepage -->
34      <th class="navbar" align="right" width="100%">
35        <table border="0" cellpadding="0" cellspacing="0">
36          <tr><th class="navbar" align="center"
37            >NDG Security</th>
38          </tr></table></th>
39  </tr>
40</table>
41<table width="100%" cellpadding="0" cellspacing="0">
42  <tr valign="top">
43    <td width="100%">
44      <span class="breadcrumbs">
45        <a href="ndg-module.html">Package&nbsp;ndg</a> ::
46        <a href="ndg.security-module.html">Package&nbsp;security</a> ::
47        <a href="ndg.security.client-module.html">Package&nbsp;client</a> ::
48        Module&nbsp;ndgSessionClient
49      </span>
50    </td>
51    <td>
52      <table cellpadding="0" cellspacing="0">
53        <!-- hide/show private -->
54        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
55    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
56      </table>
57    </td>
58  </tr>
59</table>
60<h1 class="epydoc">Source Code for <a href="ndg.security.client.ndgSessionClient-module.html">Module ndg.security.client.ndgSessionClient</a></h1>
61<pre class="py-src">
62<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
63<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
64<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">"""NDG Session client script - makes requests for authentication and</tt> </tt>
65<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring">authorisation</tt> </tt>
66<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
67<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">NERC Data Grid Project</tt> </tt>
68<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
69<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">This software may be distributed under the terms of the Q Public License,</tt> </tt>
70<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring">version 1.0 or later.</tt> </tt>
71<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
72<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">"P J Kershaw"</tt> </tt>
73<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-name">__date__</tt> <tt class="py-op">=</tt> <tt class="py-string">"08/03/06"</tt> </tt>
74<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-name">__copyright__</tt> <tt class="py-op">=</tt> <tt class="py-string">"(C) 2007 STFC &amp; NERC"</tt> </tt>
75<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-name">__license__</tt> <tt class="py-op">=</tt> \ </tt>
76<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-string">"""This software may be distributed under the terms of the Q Public </tt> </tt>
77<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-string">License, version 1.0 or later."""</tt> </tt>
78<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-name">__contact__</tt> <tt class="py-op">=</tt> <tt class="py-string">"P.J.Kershaw@rl.ac.uk"</tt> </tt>
79<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable ndg.__revision__=ndg-module.html#__revision__,Variable ndg.security.__revision__=ndg.security-module.html#__revision__,Variable ndg.security.__revision__=ndg.security-module.html#__revision__,Variable ndg.security.client.LogClient.__revision__=ndg.security.client.LogClient-module.html#__revision__,Variable ndg.security.client.SimpleCAClient.__revision__=ndg.security.client.SimpleCAClient-module.html#__revision__,Variable ndg.security.client.__revision__=ndg.security.client-module.html#__revision__,Variable ndg.security.client.ndgSessionClient.__revision__=ndg.security.client.ndgSessionClient-module.html#__revision__,Variable ndg.security.common.AttAuthority.__revision__=ndg.security.common.AttAuthority-module.html#__revision__,Variable ndg.security.common.AttCert.__revision__=ndg.security.common.AttCert-module.html#__revision__,Variable ndg.security.common.CredWallet.__revision__=ndg.security.common.CredWallet-module.html#__revision__,Variable ndg.security.common.SQLObject.__revision__=ndg.security.common.SQLObject-module.html#__revision__,Variable ndg.security.common.SecurityCGI.__revision__=ndg.security.common.SecurityCGI-module.html#__revision__,Variable ndg.security.common.SessionMgr.__revision__=ndg.security.common.SessionMgr-module.html#__revision__,Variable ndg.security.common.X509.__revision__=ndg.security.common.X509-module.html#__revision__,Variable ndg.security.common.XMLSec.__revision__=ndg.security.common.XMLSec-module.html#__revision__,Variable ndg.security.common.__revision__=ndg.security.common-module.html#__revision__,Variable ndg.security.common.authz.__revision__=ndg.security.common.authz-module.html#__revision__,Variable ndg.security.common.authz.pdp.__revision__=ndg.security.common.authz.pdp-module.html#__revision__,Variable ndg.security.common.authz.pdp.browse.__revision__=ndg.security.common.authz.pdp.browse-module.html#__revision__,Variable ndg.security.common.authz.pdp.proftp.__revision__=ndg.security.common.authz.pdp.proftp-module.html#__revision__,Variable ndg.security.common.authz.pep.__revision__=ndg.security.common.authz.pep-module.html#__revision__,Variable ndg.security.common.ca.__revision__=ndg.security.common.ca-module.html#__revision__,Variable ndg.security.common.gatekeeper.__revision__=ndg.security.common.gatekeeper-module.html#__revision__,Variable ndg.security.common.logService.__revision__=ndg.security.common.logService-module.html#__revision__,Variable ndg.security.common.logService.log_services_server.__revision__=ndg.security.common.logService.log_services_server-module.html#__revision__,Variable ndg.security.common.m2CryptoSSLUtility.__revision__=ndg.security.common.m2CryptoSSLUtility-module.html#__revision__,Variable ndg.security.common.openssl.__revision__=ndg.security.common.openssl-module.html#__revision__,Variable ndg.security.common.pylons.security_util.__revision__=ndg.security.common.pylons.security_util-module.html#__revision__,Variable ndg.security.common.saml.__revision__=ndg.security.common.saml-module.html#__revision__,Variable ndg.security.common.sessionCookie.__revision__=ndg.security.common.sessionCookie-module.html#__revision__,Variable ndg.security.common.utils.ClassFactory.__revision__=ndg.security.common.utils.ClassFactory-module.html#__revision__,Variable ndg.security.common.utils.ConfigFileParsers.__revision__=ndg.security.common.utils.ConfigFileParsers-module.html#__revision__,Variable ndg.security.common.wssecurity.BaseSignatureHandler.__revision__=ndg.security.common.wssecurity.BaseSignatureHandler-module.html#__revision__,Variable ndg.security.common.wssecurity.__revision__=ndg.security.common.wssecurity-module.html#__revision__,Variable ndg.security.common.wssecurity.dom.__revision__=ndg.security.common.wssecurity.dom-module.html#__revision__,Variable ndg.security.common.wssecurity.etree.__revision__=ndg.security.common.wssecurity.etree-module.html#__revision__,Variable ndg.security.common.xmlsec.__revision__=ndg.security.common.xmlsec-module.html#__revision__,Variable ndg.security.common.xmlsec.dom.__revision__=ndg.security.common.xmlsec.dom-module.html#__revision__,Variable ndg.security.common.xmlsec.etree.__revision__=ndg.security.common.xmlsec.etree-module.html#__revision__,Variable ndg.security.common.zsi_utils.httpproxy.__revision__=ndg.security.common.zsi_utils.httpproxy-module.html#__revision__,Variable ndg.security.server.AttAuthority.__revision__=ndg.security.server.AttAuthority-module.html#__revision__,Variable ndg.security.server.Log.__revision__=ndg.security.server.Log-module.html#__revision__,Variable ndg.security.server.SessionMgr.__revision__=ndg.security.server.SessionMgr-module.html#__revision__,Variable ndg.security.server.__revision__=ndg.security.server-module.html#__revision__,Variable ndg.security.server.authenservice.MyProxy.__revision__=ndg.security.server.authenservice.MyProxy-module.html#__revision__,Variable ndg.security.server.authenservice.__revision__=ndg.security.server.authenservice-module.html#__revision__,Variable ndg.security.server.authenservice.session_mgr_my_proxy_client.__revision__=ndg.security.server.authenservice.session_mgr_my_proxy_client-module.html#__revision__,Variable ndg.security.server.ca.__revision__=ndg.security.server.ca-module.html#__revision__,Variable ndg.security.server.conf.__revision__=ndg.security.server.conf-module.html#__revision__,Variable ndg.security.server.conf.attCertLog.__revision__=ndg.security.server.conf.attCertLog-module.html#__revision__,Variable ndg.security.server.conf.certs.__revision__=ndg.security.server.conf.certs-module.html#__revision__,Variable ndg.security.server.conf.certs.ca.__revision__=ndg.security.server.conf.certs.ca-module.html#__revision__,Variable ndg.security.server.conf.userRoles.__revision__=ndg.security.server.conf.userRoles-module.html#__revision__,Variable ndg.security.server.initCredReposDb.__revision__=ndg.security.server.initCredReposDb-module.html#__revision__,Variable ndg.security.server.log.__revision__=ndg.security.server.log-module.html#__revision__,Variable ndg.security.server.pylons.container.lib.openid_provider_util.__revision__=ndg.security.server.pylons.container.lib.openid_provider_util-module.html#__revision__,Variable ndg.security.server.share.__revision__=ndg.security.server.share-module.html#__revision__,Variable ndg.security.server.twisted.__revision__=ndg.security.server.twisted-module.html#__revision__,Variable ndg.security.server.wsgi.openid_provider.__revision__=ndg.security.server.wsgi.openid_provider-module.html#__revision__,Variable ndg.security.server.wsgi.soap.__revision__=ndg.security.server.wsgi.soap-module.html#__revision__,Variable ndg.security.server.wsgi.wssecurity.__revision__=ndg.security.server.wsgi.wssecurity-module.html#__revision__,Variable ndg.security.test.Log.LogTest.__revision__=ndg.security.test.Log.LogTest-module.html#__revision__,Variable ndg.security.test.Log.__revision__=ndg.security.test.Log-module.html#__revision__,Variable ndg.security.test.X509.X509Test.__revision__=ndg.security.test.X509.X509Test-module.html#__revision__,Variable ndg.security.test.X509.__revision__=ndg.security.test.X509-module.html#__revision__,Variable ndg.security.test.XMLSecDoc.__revision__=ndg.security.test.XMLSecDoc-module.html#__revision__,Variable ndg.security.test.XMLSecDoc.xmlSecDocTest.__revision__=ndg.security.test.XMLSecDoc.xmlSecDocTest-module.html#__revision__,Variable ndg.security.test.__revision__=ndg.security.test-module.html#__revision__,Variable ndg.security.test.attAuthority.AttAuthorityClientTest.__revision__=ndg.security.test.attAuthority.AttAuthorityClientTest-module.html#__revision__,Variable ndg.security.test.attAuthority.__revision__=ndg.security.test.attAuthority-module.html#__revision__,Variable ndg.security.test.attAuthority.attCertLog.__revision__=ndg.security.test.attAuthority.attCertLog-module.html#__revision__,Variable ndg.security.test.attAuthority.ca.__revision__=ndg.security.test.attAuthority.ca-module.html#__revision__,Variable ndg.security.test.attAuthority.siteAServer.__revision__=ndg.security.test.attAuthority.siteAServer-module.html#__revision__,Variable ndg.security.test.attAuthority.siteAUserRoles.__revision__=ndg.security.test.attAuthority.siteAUserRoles-module.html#__revision__,Variable ndg.security.test.attAuthority.siteBServer.__revision__=ndg.security.test.attAuthority.siteBServer-module.html#__revision__,Variable ndg.security.test.attAuthority.siteBUserRoles.__revision__=ndg.security.test.attAuthority.siteBUserRoles-module.html#__revision__,Variable ndg.security.test.attCert.AttCertTest.__revision__=ndg.security.test.attCert.AttCertTest-module.html#__revision__,Variable ndg.security.test.attCert.__revision__=ndg.security.test.attCert-module.html#__revision__,Variable ndg.security.test.authenservice.__revision__=ndg.security.test.authenservice-module.html#__revision__,Variable ndg.security.test.authenservice.test_authen_service.__revision__=ndg.security.test.authenservice.test_authen_service-module.html#__revision__,Variable ndg.security.test.authz.pdp.testProftPDP.__revision__=ndg.security.test.authz.pdp.testProftPDP-module.html#__revision__,Variable ndg.security.test.ca.__revision__=ndg.security.test.ca-module.html#__revision__,Variable ndg.security.test.ca.caClientTest.__revision__=ndg.security.test.ca.caClientTest-module.html#__revision__,Variable ndg.security.test.myProxy.MyProxyClientTest.__revision__=ndg.security.test.myProxy.MyProxyClientTest-module.html#__revision__,Variable ndg.security.test.myProxy.__revision__=ndg.security.test.myProxy-module.html#__revision__,Variable ndg.security.test.saml.__revision__=ndg.security.test.saml-module.html#__revision__,Variable ndg.security.test.sessionCookie.SessionCookieTest.__revision__=ndg.security.test.sessionCookie.SessionCookieTest-module.html#__revision__,Variable ndg.security.test.sessionCookie.__revision__=ndg.security.test.sessionCookie-module.html#__revision__,Variable ndg.security.test.sessionMgr.__revision__=ndg.security.test.sessionMgr-module.html#__revision__,Variable ndg.security.test.sessionMgr.ca.__revision__=ndg.security.test.sessionMgr.ca-module.html#__revision__,Variable ndg.security.test.sessionMgr.test.__revision__=ndg.security.test.sessionMgr.test-module.html#__revision__,Variable ndg.security.test.sessionMgrClient.SessionMgrClientTest.__revision__=ndg.security.test.sessionMgrClient.SessionMgrClientTest-module.html#__revision__,Variable ndg.security.test.sessionMgrClient.__revision__=ndg.security.test.sessionMgrClient-module.html#__revision__,Variable ndg.security.test.sessionMgrClient.ca.__revision__=ndg.security.test.sessionMgrClient.ca-module.html#__revision__,Variable ndg.security.test.sessionMgrClient.server.__revision__=ndg.security.test.sessionMgrClient.server-module.html#__revision__,Variable ndg.security.test.wsSecurity.__revision__=ndg.security.test.wsSecurity-module.html#__revision__,Variable ndg.security.test.wsSecurity.client.__revision__=ndg.security.test.wsSecurity.client-module.html#__revision__,Variable ndg.security.test.wsSecurity.server.__revision__=ndg.security.test.wsSecurity.server-module.html#__revision__,Variable ndg.security.test.xmlsec.__revision__=ndg.security.test.xmlsec-module.html#__revision__,Variable ndg.security.test.xmlsec.dom.__revision__=ndg.security.test.xmlsec.dom-module.html#__revision__,Variable ndg.security.test.xmlsec.etree.test_etree.__revision__=ndg.security.test.xmlsec.etree.test_etree-module.html#__revision__"><a title="ndg.__revision__
80ndg.security.__revision__
81ndg.security.__revision__
82ndg.security.client.LogClient.__revision__
83ndg.security.client.SimpleCAClient.__revision__
84ndg.security.client.__revision__
85ndg.security.client.ndgSessionClient.__revision__
86ndg.security.common.AttAuthority.__revision__
87ndg.security.common.AttCert.__revision__
88ndg.security.common.CredWallet.__revision__
89ndg.security.common.SQLObject.__revision__
90ndg.security.common.SecurityCGI.__revision__
91ndg.security.common.SessionMgr.__revision__
92ndg.security.common.X509.__revision__
93ndg.security.common.XMLSec.__revision__
94ndg.security.common.__revision__
95ndg.security.common.authz.__revision__
96ndg.security.common.authz.pdp.__revision__
97ndg.security.common.authz.pdp.browse.__revision__
98ndg.security.common.authz.pdp.proftp.__revision__
99ndg.security.common.authz.pep.__revision__
100ndg.security.common.ca.__revision__
101ndg.security.common.gatekeeper.__revision__
102ndg.security.common.logService.__revision__
103ndg.security.common.logService.log_services_server.__revision__
104ndg.security.common.m2CryptoSSLUtility.__revision__
105ndg.security.common.openssl.__revision__
106ndg.security.common.pylons.security_util.__revision__
107ndg.security.common.saml.__revision__
108ndg.security.common.sessionCookie.__revision__
109ndg.security.common.utils.ClassFactory.__revision__
110ndg.security.common.utils.ConfigFileParsers.__revision__
111ndg.security.common.wssecurity.BaseSignatureHandler.__revision__
112ndg.security.common.wssecurity.__revision__
113ndg.security.common.wssecurity.dom.__revision__
114ndg.security.common.wssecurity.etree.__revision__
115ndg.security.common.xmlsec.__revision__
116ndg.security.common.xmlsec.dom.__revision__
117ndg.security.common.xmlsec.etree.__revision__
118ndg.security.common.zsi_utils.httpproxy.__revision__
119ndg.security.server.AttAuthority.__revision__
120ndg.security.server.Log.__revision__
121ndg.security.server.SessionMgr.__revision__
122ndg.security.server.__revision__
123ndg.security.server.authenservice.MyProxy.__revision__
124ndg.security.server.authenservice.__revision__
125ndg.security.server.authenservice.session_mgr_my_proxy_client.__revision__
126ndg.security.server.ca.__revision__
127ndg.security.server.conf.__revision__
128ndg.security.server.conf.attCertLog.__revision__
129ndg.security.server.conf.certs.__revision__
130ndg.security.server.conf.certs.ca.__revision__
131ndg.security.server.conf.userRoles.__revision__
132ndg.security.server.initCredReposDb.__revision__
133ndg.security.server.log.__revision__
134ndg.security.server.pylons.container.lib.openid_provider_util.__revision__
135ndg.security.server.share.__revision__
136ndg.security.server.twisted.__revision__
137ndg.security.server.wsgi.openid_provider.__revision__
138ndg.security.server.wsgi.soap.__revision__
139ndg.security.server.wsgi.wssecurity.__revision__
140ndg.security.test.Log.LogTest.__revision__
141ndg.security.test.Log.__revision__
142ndg.security.test.X509.X509Test.__revision__
143ndg.security.test.X509.__revision__
144ndg.security.test.XMLSecDoc.__revision__
145ndg.security.test.XMLSecDoc.xmlSecDocTest.__revision__
146ndg.security.test.__revision__
147ndg.security.test.attAuthority.AttAuthorityClientTest.__revision__
148ndg.security.test.attAuthority.__revision__
149ndg.security.test.attAuthority.attCertLog.__revision__
150ndg.security.test.attAuthority.ca.__revision__
151ndg.security.test.attAuthority.siteAServer.__revision__
152ndg.security.test.attAuthority.siteAUserRoles.__revision__
153ndg.security.test.attAuthority.siteBServer.__revision__
154ndg.security.test.attAuthority.siteBUserRoles.__revision__
155ndg.security.test.attCert.AttCertTest.__revision__
156ndg.security.test.attCert.__revision__
157ndg.security.test.authenservice.__revision__
158ndg.security.test.authenservice.test_authen_service.__revision__
159ndg.security.test.authz.pdp.testProftPDP.__revision__
160ndg.security.test.ca.__revision__
161ndg.security.test.ca.caClientTest.__revision__
162ndg.security.test.myProxy.MyProxyClientTest.__revision__
163ndg.security.test.myProxy.__revision__
164ndg.security.test.saml.__revision__
165ndg.security.test.sessionCookie.SessionCookieTest.__revision__
166ndg.security.test.sessionCookie.__revision__
167ndg.security.test.sessionMgr.__revision__
168ndg.security.test.sessionMgr.ca.__revision__
169ndg.security.test.sessionMgr.test.__revision__
170ndg.security.test.sessionMgrClient.SessionMgrClientTest.__revision__
171ndg.security.test.sessionMgrClient.__revision__
172ndg.security.test.sessionMgrClient.ca.__revision__
173ndg.security.test.sessionMgrClient.server.__revision__
174ndg.security.test.wsSecurity.__revision__
175ndg.security.test.wsSecurity.client.__revision__
176ndg.security.test.wsSecurity.server.__revision__
177ndg.security.test.xmlsec.__revision__
178ndg.security.test.xmlsec.dom.__revision__
179ndg.security.test.xmlsec.etree.test_etree.__revision__" class="py-name" href="#" onclick="return doclink('link-0', '__revision__', 'link-0');">__revision__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"$Id: ndgSessionClient.py 2909 2007-09-28 14:22:21Z pjkersha $"</tt> </tt>
180<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"> </tt>
181<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-comment"># Command line processing</tt> </tt>
182<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
183<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
184<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">optparse</tt> </tt>
185<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> </tt>
186<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">getpass</tt> </tt>
187<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
188<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">Cookie</tt> <tt class="py-keyword">import</tt> <tt class="py-name">SimpleCookie</tt> </tt>
189<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
190<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Package ndg=ndg-module.html,Class ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.ndg=ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.ndg-class.html,Package ndg.security.client.ssoclient.ssoclient.templates.ndg=ndg.security.client.ssoclient.ssoclient.templates.ndg-module.html,Package ndg.security.server.pylons.container.templates.bak.ndg=ndg.security.server.pylons.container.templates.bak.ndg-module.html,Package ndg.security.server.pylons.container.templates.ndg=ndg.security.server.pylons.container.templates.ndg-module.html,Class ndg.security.server.sso.sso.config.ssoServiceMiddleware.ndg=ndg.security.server.sso.sso.config.ssoServiceMiddleware.ndg-class.html,Package ndg.security.server.sso.sso.templates.ndg=ndg.security.server.sso.sso.templates.ndg-module.html"><a title="ndg
191ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.ndg
192ndg.security.client.ssoclient.ssoclient.templates.ndg
193ndg.security.server.pylons.container.templates.bak.ndg
194ndg.security.server.pylons.container.templates.ndg
195ndg.security.server.sso.sso.config.ssoServiceMiddleware.ndg
196ndg.security.server.sso.sso.templates.ndg" class="py-name" href="#" onclick="return doclink('link-1', 'ndg', 'link-1');">ndg</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Package ndg.security=ndg.security-module.html,Package ndg.security=ndg.security-module.html,Class ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.ndg.security=ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.ndg.security-class.html,Package ndg.security.client.ssoclient.ssoclient.templates.ndg.security=ndg.security.client.ssoclient.ssoclient.templates.ndg.security-module.html,Package ndg.security.server.pylons.container.templates.bak.ndg.security=ndg.security.server.pylons.container.templates.bak.ndg.security-module.html,Package ndg.security.server.pylons.container.templates.ndg.security=ndg.security.server.pylons.container.templates.ndg.security-module.html,Class ndg.security.server.sso.sso.config.ssoServiceMiddleware.ndg.security=ndg.security.server.sso.sso.config.ssoServiceMiddleware.ndg.security-class.html,Package ndg.security.server.sso.sso.templates.ndg.security=ndg.security.server.sso.sso.templates.ndg.security-module.html"><a title="ndg.security
197ndg.security
198ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.ndg.security
199ndg.security.client.ssoclient.ssoclient.templates.ndg.security
200ndg.security.server.pylons.container.templates.bak.ndg.security
201ndg.security.server.pylons.container.templates.ndg.security
202ndg.security.server.sso.sso.config.ssoServiceMiddleware.ndg.security
203ndg.security.server.sso.sso.templates.ndg.security" class="py-name" href="#" onclick="return doclink('link-2', 'security', 'link-2');">security</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Package ndg.security.client=ndg.security.client-module.html,Package ndg.security.test.wsSecurity.client=ndg.security.test.wsSecurity.client-module.html"><a title="ndg.security.client
204ndg.security.test.wsSecurity.client" class="py-name" href="#" onclick="return doclink('link-3', 'client', 'link-3');">client</a></tt><tt class="py-op">.</tt><tt class="py-name">SecurityClient</tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
205<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"> </tt>
206<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
207<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-comment">#_____________________________________________________________________________</tt> </tt>
208<a name="setSoapDebug"></a><div id="setSoapDebug-def"><a name="L33"></a><tt class="py-lineno"> 33</tt> <a class="py-toggle" href="#" id="setSoapDebug-toggle" onclick="return toggle('setSoapDebug');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="ndg.security.client.ndgSessionClient-module.html#setSoapDebug">setSoapDebug</a><tt class="py-op">(</tt><tt class="py-param">option</tt><tt class="py-op">,</tt> <tt class="py-param">optStr</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
209</div><div id="setSoapDebug-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="setSoapDebug-expanded"><a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">    <tt class="py-docstring">"""Parser Callback function for enabling SOAP debug output"""</tt> </tt>
210<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Method ndg.security.client.SimpleCAClient.SimpleCAClient.values()=ndg.security.client.SimpleCAClient.SimpleCAClient-class.html#values,Method ndg.security.common.AttCert.AttCert.values()=ndg.security.common.AttCert.AttCert-class.html#values,Method ndg.security.common.X509.X500DN.values()=ndg.security.common.X509.X500DN-class.html#values,Method ndg.security.common.pylons.security_util.SecuritySession.values()=ndg.security.common.pylons.security_util.SecuritySession-class.html#values,Method ndg.security.common.saml.AttributeAssertion.values()=ndg.security.common.saml.AttributeAssertion-class.html#values,Method ndg.security.common.wssecurity.WSSecurityConfig.values()=ndg.security.common.wssecurity.WSSecurityConfig-class.html#values,Method ndg.security.server.AttAuthority.AttAuthority.values()=ndg.security.server.AttAuthority.AttAuthority-class.html#values,Method ndg.security.server.SessionMgr.SessionMgr.values()=ndg.security.server.SessionMgr.SessionMgr-class.html#values,Method ndg.security.server.ca.SimpleCA.values()=ndg.security.server.ca.SimpleCA-class.html#values"><a title="ndg.security.client.SimpleCAClient.SimpleCAClient.values
211ndg.security.common.AttCert.AttCert.values
212ndg.security.common.X509.X500DN.values
213ndg.security.common.pylons.security_util.SecuritySession.values
214ndg.security.common.saml.AttributeAssertion.values
215ndg.security.common.wssecurity.WSSecurityConfig.values
216ndg.security.server.AttAuthority.AttAuthority.values
217ndg.security.server.SessionMgr.SessionMgr.values
218ndg.security.server.ca.SimpleCA.values" class="py-name" href="#" onclick="return doclink('link-4', 'values', 'link-4');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">soapDebug</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt> </tt>
219</div><a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"> </tt>
220<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">    </tt>
221<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-comment">#_____________________________________________________________________________</tt> </tt>
222<a name="setSessCookie"></a><div id="setSessCookie-def"><a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="setSessCookie-toggle" onclick="return toggle('setSessCookie');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="ndg.security.client.ndgSessionClient-module.html#setSessCookie">setSessCookie</a><tt class="py-op">(</tt><tt class="py-param">option</tt><tt class="py-op">,</tt> <tt class="py-param">optStr</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
223</div><div id="setSessCookie-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="setSessCookie-expanded"><a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">    <tt class="py-docstring">"""Parser Callback function for reading session cookie from command line</tt> </tt>
224<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
225<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
226<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">        <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="ndg.security.client.SimpleCAClient.SimpleCAClient.values
227ndg.security.common.AttCert.AttCert.values
228ndg.security.common.X509.X500DN.values
229ndg.security.common.pylons.security_util.SecuritySession.values
230ndg.security.common.saml.AttributeAssertion.values
231ndg.security.common.wssecurity.WSSecurityConfig.values
232ndg.security.server.AttAuthority.AttAuthority.values
233ndg.security.server.SessionMgr.SessionMgr.values
234ndg.security.server.ca.SimpleCA.values" class="py-name" href="#" onclick="return doclink('link-5', 'values', 'link-4');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">sessCookie</tt> <tt class="py-op">=</tt> <tt class="py-name">SimpleCookie</tt><tt class="py-op">(</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.SSOClientConfig.read()=ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.SSOClientConfig-class.html#read,Method ndg.security.common.AttCert.AttCert.read()=ndg.security.common.AttCert.AttCert-class.html#read,Method ndg.security.common.X509.X509Cert.read()=ndg.security.common.X509.X509Cert-class.html#read,Method ndg.security.common.XMLSec.XMLSecDoc.read()=ndg.security.common.XMLSec.XMLSecDoc-class.html#read,Method ndg.security.common.openssl.OpenSSLConfig.read()=ndg.security.common.openssl.OpenSSLConfig-class.html#read,Method ndg.security.common.wssecurity.WSSecurityConfig.read()=ndg.security.common.wssecurity.WSSecurityConfig-class.html#read,Method ndg.security.common.xmlsec.etree.XMLSecDoc.read()=ndg.security.common.xmlsec.etree.XMLSecDoc-class.html#read,Method ndg.security.server.sso.sso.config.ssoServiceMiddleware.SSOServiceConfig.read()=ndg.security.server.sso.sso.config.ssoServiceMiddleware.SSOServiceConfig-class.html#read"><a title="ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.SSOClientConfig.read
235ndg.security.common.AttCert.AttCert.read
236ndg.security.common.X509.X509Cert.read
237ndg.security.common.XMLSec.XMLSecDoc.read
238ndg.security.common.openssl.OpenSSLConfig.read
239ndg.security.common.wssecurity.WSSecurityConfig.read
240ndg.security.common.xmlsec.etree.XMLSecDoc.read
241ndg.security.server.sso.sso.config.ssoServiceMiddleware.SSOServiceConfig.read" class="py-name" href="#" onclick="return doclink('link-6', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
242<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">         </tt>
243<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">errNo</tt><tt class="py-op">,</tt> <tt class="py-name">errMsg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
244<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">optparse</tt><tt class="py-op">.</tt><tt class="py-name">OptionValueError</tt><tt class="py-op">(</tt>\ </tt>
245<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">                    <tt class="py-string">"Reading cookie from file \"%s\": %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">errMsg</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
246<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">                            </tt>
247<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
248<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">optparse</tt><tt class="py-op">.</tt><tt class="py-name">OptionValueError</tt><tt class="py-op">(</tt>\ </tt>
249<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">                    <tt class="py-string">"Reading cookie from file \"%s\": %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
250</div><a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"> </tt>
251<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"> </tt>
252<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"><tt class="py-comment">#_____________________________________________________________________________</tt> </tt>
253<a name="setSessCookieFromStdin"></a><div id="setSessCookieFromStdin-def"><a name="L55"></a><tt class="py-lineno"> 55</tt> <a class="py-toggle" href="#" id="setSessCookieFromStdin-toggle" onclick="return toggle('setSessCookieFromStdin');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="ndg.security.client.ndgSessionClient-module.html#setSessCookieFromStdin">setSessCookieFromStdin</a><tt class="py-op">(</tt><tt class="py-param">option</tt><tt class="py-op">,</tt> <tt class="py-param">optStr</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
254</div><div id="setSessCookieFromStdin-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="setSessCookieFromStdin-expanded"><a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">    <tt class="py-docstring">"""Parser Callback function for reading cookie from stdin"""</tt> </tt>
255<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
256<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-comment"># Read from standard input</tt> </tt>
257<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="ndg.security.client.SimpleCAClient.SimpleCAClient.values
258ndg.security.common.AttCert.AttCert.values
259ndg.security.common.X509.X500DN.values
260ndg.security.common.pylons.security_util.SecuritySession.values
261ndg.security.common.saml.AttributeAssertion.values
262ndg.security.common.wssecurity.WSSecurityConfig.values
263ndg.security.server.AttAuthority.AttAuthority.values
264ndg.security.server.SessionMgr.SessionMgr.values
265ndg.security.server.ca.SimpleCA.values" class="py-name" href="#" onclick="return doclink('link-7', 'values', 'link-4');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">sessCookie</tt> <tt class="py-op">=</tt> <tt class="py-name">SimpleCookie</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdin</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.SSOClientConfig.read
266ndg.security.common.AttCert.AttCert.read
267ndg.security.common.X509.X509Cert.read
268ndg.security.common.XMLSec.XMLSecDoc.read
269ndg.security.common.openssl.OpenSSLConfig.read
270ndg.security.common.wssecurity.WSSecurityConfig.read
271ndg.security.common.xmlsec.etree.XMLSecDoc.read
272ndg.security.server.sso.sso.config.ssoServiceMiddleware.SSOServiceConfig.read" class="py-name" href="#" onclick="return doclink('link-8', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
273<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"> </tt>
274<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">KeyboardInterrupt</tt><tt class="py-op">:</tt> </tt>
275<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">optparse</tt><tt class="py-op">.</tt><tt class="py-name">OptionValueError</tt><tt class="py-op">(</tt>\ </tt>
276<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">                    <tt class="py-string">"option \"%s\": expecting cookie set from stdin"</tt> <tt class="py-op">%</tt> <tt class="py-name">optStr</tt><tt class="py-op">)</tt> </tt>
277<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">           </tt>
278<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
279<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">optparse</tt><tt class="py-op">.</tt><tt class="py-name">OptionValueError</tt><tt class="py-op">(</tt>\ </tt>
280<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">                    <tt class="py-string">"option %s: Reading cookie from file \"%s\": %s"</tt> <tt class="py-op">%</tt> \ </tt>
281<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt class="py-name">optStr</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
282</div><a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">                     </tt>
283<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"> </tt>
284<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"><tt class="py-comment">#_____________________________________________________________________________</tt> </tt>
285<a name="setClntPriKeyPwd"></a><div id="setClntPriKeyPwd-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="setClntPriKeyPwd-toggle" onclick="return toggle('setClntPriKeyPwd');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="ndg.security.client.ndgSessionClient-module.html#setClntPriKeyPwd">setClntPriKeyPwd</a><tt class="py-op">(</tt><tt class="py-param">option</tt><tt class="py-op">,</tt> <tt class="py-param">optStr</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
286</div><div id="setClntPriKeyPwd-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="setClntPriKeyPwd-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">    <tt class="py-docstring">"""Parser Callback function for reading client private key password"""</tt> </tt>
287<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"> </tt>
288<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
289<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">        <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="ndg.security.client.SimpleCAClient.SimpleCAClient.values
290ndg.security.common.AttCert.AttCert.values
291ndg.security.common.X509.X500DN.values
292ndg.security.common.pylons.security_util.SecuritySession.values
293ndg.security.common.saml.AttributeAssertion.values
294ndg.security.common.wssecurity.WSSecurityConfig.values
295ndg.security.server.AttAuthority.AttAuthority.values
296ndg.security.server.SessionMgr.SessionMgr.values
297ndg.security.server.ca.SimpleCA.values" class="py-name" href="#" onclick="return doclink('link-9', 'values', 'link-4');">values</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Variable ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyPwd=ndg.security.common.ca.CertificateAuthorityClient-class.html#clntPriKeyPwd,Variable ndg.security.test.attAuthority.AttAuthorityClientTest.AttAuthorityClientTestCase.clntPriKeyPwd=ndg.security.test.attAuthority.AttAuthorityClientTest.AttAuthorityClientTestCase-class.html#clntPriKeyPwd"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyPwd
298ndg.security.test.attAuthority.AttAuthorityClientTest.AttAuthorityClientTestCase.clntPriKeyPwd" class="py-name" href="#" onclick="return doclink('link-10', 'clntPriKeyPwd', 'link-10');">clntPriKeyPwd</a></tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.SSOClientConfig.read
299ndg.security.common.AttCert.AttCert.read
300ndg.security.common.X509.X509Cert.read
301ndg.security.common.XMLSec.XMLSecDoc.read
302ndg.security.common.openssl.OpenSSLConfig.read
303ndg.security.common.wssecurity.WSSecurityConfig.read
304ndg.security.common.xmlsec.etree.XMLSecDoc.read
305ndg.security.server.sso.sso.config.ssoServiceMiddleware.SSOServiceConfig.read" class="py-name" href="#" onclick="return doclink('link-11', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
306<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">         </tt>
307<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">errNo</tt><tt class="py-op">,</tt> <tt class="py-name">errMsg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
308<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">optparse</tt><tt class="py-op">.</tt><tt class="py-name">OptionValueError</tt><tt class="py-op">(</tt>\ </tt>
309<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">                    <tt class="py-string">"Reading password from file \"%s\": %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">errMsg</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
310<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">                            </tt>
311<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
312<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">optparse</tt><tt class="py-op">.</tt><tt class="py-name">OptionValueError</tt><tt class="py-op">(</tt>\ </tt>
313<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">                    <tt class="py-string">"Reading password from file \"%s\": %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
314</div><a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">        </tt>
315<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"> </tt>
316<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-comment">#_____________________________________________________________________________</tt> </tt>
317<a name="setAAcert"></a><div id="setAAcert-def"><a name="L88"></a><tt class="py-lineno"> 88</tt> <a class="py-toggle" href="#" id="setAAcert-toggle" onclick="return toggle('setAAcert');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="ndg.security.client.ndgSessionClient-module.html#setAAcert">setAAcert</a><tt class="py-op">(</tt><tt class="py-param">option</tt><tt class="py-op">,</tt> <tt class="py-param">optStr</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
318</div><div id="setAAcert-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="setAAcert-expanded"><a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">    <tt class="py-docstring">"""Parser callback function for reading Attribute Authority Public key"""</tt> </tt>
319<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">     </tt>
320<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
321<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="ndg.security.client.SimpleCAClient.SimpleCAClient.values
322ndg.security.common.AttCert.AttCert.values
323ndg.security.common.X509.X500DN.values
324ndg.security.common.pylons.security_util.SecuritySession.values
325ndg.security.common.saml.AttributeAssertion.values
326ndg.security.common.wssecurity.WSSecurityConfig.values
327ndg.security.server.AttAuthority.AttAuthority.values
328ndg.security.server.SessionMgr.SessionMgr.values
329ndg.security.server.ca.SimpleCA.values" class="py-name" href="#" onclick="return doclink('link-12', 'values', 'link-4');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">aaCert</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.SSOClientConfig.read
330ndg.security.common.AttCert.AttCert.read
331ndg.security.common.X509.X509Cert.read
332ndg.security.common.XMLSec.XMLSecDoc.read
333ndg.security.common.openssl.OpenSSLConfig.read
334ndg.security.common.wssecurity.WSSecurityConfig.read
335ndg.security.common.xmlsec.etree.XMLSecDoc.read
336ndg.security.server.sso.sso.config.ssoServiceMiddleware.SSOServiceConfig.read" class="py-name" href="#" onclick="return doclink('link-13', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
337<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">         </tt>
338<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">errNo</tt><tt class="py-op">,</tt> <tt class="py-name">errMsg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
339<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">optparse</tt><tt class="py-op">.</tt><tt class="py-name">OptionValueError</tt><tt class="py-op">(</tt>\ </tt>
340<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">                <tt class="py-string">"Reading Attribute Authority Public key file \"%s\": %s"</tt> <tt class="py-op">%</tt> \ </tt>
341<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">errMsg</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
342<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">                            </tt>
343<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
344<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">optparse</tt><tt class="py-op">.</tt><tt class="py-name">OptionValueError</tt><tt class="py-op">(</tt>\ </tt>
345<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">                <tt class="py-string">"Reading Attribute Authority Public key file \"%s\": %s"</tt> <tt class="py-op">%</tt> \ </tt>
346<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
347</div><a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">                 </tt>
348<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">                       </tt>
349<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"><tt class="py-comment">#_____________________________________________________________________________</tt> </tt>
350<a name="main"></a><div id="main-def"><a name="L106"></a><tt class="py-lineno">106</tt> <a class="py-toggle" href="#" id="main-toggle" onclick="return toggle('main');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="ndg.security.client.ndgSessionClient-module.html#main">main</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
351</div><div id="main-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="main-expanded"><a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"> </tt>
352<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">    <tt id="link-14" class="py-name" targets="Variable ndg.security.server.authenservice.MyProxy.CmdLineClient.usage=ndg.security.server.authenservice.MyProxy.CmdLineClient-class.html#usage"><a title="ndg.security.server.authenservice.MyProxy.CmdLineClient.usage" class="py-name" href="#" onclick="return doclink('link-14', 'usage', 'link-14');">usage</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">basename</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">" [--add-user=&lt;username&gt; ...]|"</tt><tt class="py-op">+</tt>\ </tt>
353<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">            <tt class="py-string">"[--connect=&lt;username&gt; ...]|[--req-attr ...]|"</tt> <tt class="py-op">+</tt> \ </tt>
354<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">            <tt class="py-string">"[--connect=&lt;username&gt; ... --req-attr ...]"</tt> </tt>
355<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">             </tt>
356<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">    <tt class="py-name">parser</tt> <tt class="py-op">=</tt> <tt class="py-name">optparse</tt><tt class="py-op">.</tt><tt class="py-name">OptionParser</tt><tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="ndg.security.server.authenservice.MyProxy.CmdLineClient.usage" class="py-name" href="#" onclick="return doclink('link-15', 'usage', 'link-14');">usage</a></tt><tt class="py-op">=</tt><tt id="link-16" class="py-name"><a title="ndg.security.server.authenservice.MyProxy.CmdLineClient.usage" class="py-name" href="#" onclick="return doclink('link-16', 'usage', 'link-14');">usage</a></tt><tt class="py-op">)</tt> </tt>
357<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-n"</tt><tt class="py-op">,</tt>  </tt>
358<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">                      <tt class="py-string">"--add-user"</tt><tt class="py-op">,</tt>  </tt>
359<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"newUserName"</tt><tt class="py-op">,</tt> </tt>
360<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt><tt class="py-string">"add a new user, see also: -p and -s options"</tt><tt class="py-op">)</tt> </tt>
361<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"> </tt>
362<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-c"</tt><tt class="py-op">,</tt>  </tt>
363<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">                      <tt class="py-string">"--connect"</tt><tt class="py-op">,</tt> </tt>
364<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"userName"</tt><tt class="py-op">,</tt> </tt>
365<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt><tt class="py-string">"""login in to a Session Manager with username."""</tt><tt class="py-op">)</tt> </tt>
366<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">     </tt>
367<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-r"</tt><tt class="py-op">,</tt>  </tt>
368<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">                      <tt class="py-string">"--req-attr"</tt><tt class="py-op">,</tt>  </tt>
369<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"attAuthorityURI"</tt><tt class="py-op">,</tt>  </tt>
370<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt>\ </tt>
371<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"><tt class="py-string">"""Get a Session Manager to request authorisation from an Attribute Authority </tt> </tt>
372<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"><tt class="py-string">with the given address."""</tt><tt class="py-op">)</tt> </tt>
373<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">     </tt>
374<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-a"</tt><tt class="py-op">,</tt>  </tt>
375<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">                      <tt class="py-string">"--att-authority-pubkey-file"</tt><tt class="py-op">,</tt> </tt>
376<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">                      <tt class="py-name">action</tt><tt class="py-op">=</tt><tt class="py-string">"callback"</tt><tt class="py-op">,</tt> </tt>
377<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">                      <tt class="py-name">callback</tt><tt class="py-op">=</tt><tt id="link-17" class="py-name" targets="Function ndg.security.client.ndgSessionClient.setAAcert()=ndg.security.client.ndgSessionClient-module.html#setAAcert"><a title="ndg.security.client.ndgSessionClient.setAAcert" class="py-name" href="#" onclick="return doclink('link-17', 'setAAcert', 'link-17');">setAAcert</a></tt><tt class="py-op">,</tt> </tt>
378<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"aaCert"</tt><tt class="py-op">,</tt> </tt>
379<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">                      <tt id="link-18" class="py-name" targets="Variable ndg.security.common.AttAuthority.AttAuthority_services_types.ns0.HostInfo_Def.type=ndg.security.common.AttAuthority.AttAuthority_services_types.ns0.HostInfo_Def-class.html#type"><a title="ndg.security.common.AttAuthority.AttAuthority_services_types.ns0.HostInfo_Def.type" class="py-name" href="#" onclick="return doclink('link-18', 'type', 'link-18');">type</a></tt><tt class="py-op">=</tt><tt class="py-string">"string"</tt><tt class="py-op">,</tt>  </tt>
380<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt>\ </tt>
381<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-string">"""File Path of Public key of Attribute Authority used by the Session Manager </tt> </tt>
382<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-string">to encrypt requests to it.  WARNING: If this is not set, requests will be sent</tt> </tt>
383<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-string">in clear text."""</tt><tt class="py-op">)</tt> </tt>
384<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"> </tt>
385<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-x"</tt><tt class="py-op">,</tt> </tt>
386<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">                      <tt class="py-string">"--clnt-pubkey-file"</tt><tt class="py-op">,</tt> </tt>
387<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"clntCertFilePath"</tt><tt class="py-op">,</tt> </tt>
388<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt>\ </tt>
389<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"><tt class="py-string">"""X.509 Certificate of client.  This is used by the Session Manager to </tt> </tt>
390<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-string">encrypt responses.  WARNING: If this is not set, the response will be sent </tt> </tt>
391<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-string">back in clear text"""</tt><tt class="py-op">)</tt> </tt>
392<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"> </tt>
393<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-k"</tt><tt class="py-op">,</tt> </tt>
394<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">                      <tt class="py-string">"--clnt-prikey-file"</tt><tt class="py-op">,</tt> </tt>
395<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"clntPriKeyFilePath"</tt><tt class="py-op">,</tt> </tt>
396<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt>\ </tt>
397<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-string">"""Private key file of client.  This is used by the client to decrypt</tt> </tt>
398<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-string">responses.  This must be set if -x/--clnt-pubkey-file is set."""</tt><tt class="py-op">)</tt> </tt>
399<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"> </tt>
400<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-w"</tt><tt class="py-op">,</tt> </tt>
401<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">                      <tt class="py-string">"--clnt-prikey-pwd-file"</tt><tt class="py-op">,</tt> </tt>
402<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"clntPriKeyPwd"</tt><tt class="py-op">,</tt> </tt>
403<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">                      <tt class="py-name">action</tt><tt class="py-op">=</tt><tt class="py-string">"callback"</tt><tt class="py-op">,</tt> </tt>
404<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">                      <tt class="py-name">callback</tt><tt class="py-op">=</tt><tt id="link-19" class="py-name" targets="Function ndg.security.client.ndgSessionClient.setClntPriKeyPwd()=ndg.security.client.ndgSessionClient-module.html#setClntPriKeyPwd"><a title="ndg.security.client.ndgSessionClient.setClntPriKeyPwd" class="py-name" href="#" onclick="return doclink('link-19', 'setClntPriKeyPwd', 'link-19');">setClntPriKeyPwd</a></tt><tt class="py-op">,</tt> </tt>
405<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">                      <tt id="link-20" class="py-name"><a title="ndg.security.common.AttAuthority.AttAuthority_services_types.ns0.HostInfo_Def.type" class="py-name" href="#" onclick="return doclink('link-20', 'type', 'link-18');">type</a></tt><tt class="py-op">=</tt><tt class="py-string">"string"</tt><tt class="py-op">,</tt> </tt>
406<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt>\ </tt>
407<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"><tt class="py-string">"""Pass a file containing the password for the client private key.  If not</tt> </tt>
408<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-string">set, it is prompted for from tty."""</tt><tt class="py-op">)</tt> </tt>
409<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"> </tt>
410<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-y"</tt><tt class="py-op">,</tt> </tt>
411<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">                      <tt class="py-string">"--session-mgr-pubkey-file"</tt><tt class="py-op">,</tt> </tt>
412<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"smCertFilePath"</tt><tt class="py-op">,</tt> </tt>
413<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt>\ </tt>
414<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-string">"""X.509 Certificate of Session Manager.  This is used to encrypt the request</tt> </tt>
415<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-string">to the Session Manager.  WARNING: if this is not set, the request will be sent</tt> </tt>
416<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"><tt class="py-string">in clear text"""</tt><tt class="py-op">)</tt> </tt>
417<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"> </tt>
418<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-s"</tt><tt class="py-op">,</tt> </tt>
419<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">                      <tt class="py-string">"--session-mgr-uri"</tt><tt class="py-op">,</tt> </tt>
420<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"sessMgrURI"</tt><tt class="py-op">,</tt> </tt>
421<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt><tt class="py-string">"Address of Session Manager to connect to"</tt><tt class="py-op">)</tt> </tt>
422<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"> </tt>
423<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-d"</tt><tt class="py-op">,</tt> </tt>
424<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">                      <tt class="py-string">"--soap-debug"</tt><tt class="py-op">,</tt> </tt>
425<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"soapDebug"</tt><tt class="py-op">,</tt> </tt>
426<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">                      <tt class="py-name">action</tt><tt class="py-op">=</tt><tt class="py-string">"callback"</tt><tt class="py-op">,</tt> </tt>
427<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">                      <tt class="py-name">callback</tt><tt class="py-op">=</tt><tt id="link-21" class="py-name" targets="Function ndg.security.client.ndgSessionClient.setSoapDebug()=ndg.security.client.ndgSessionClient-module.html#setSoapDebug"><a title="ndg.security.client.ndgSessionClient.setSoapDebug" class="py-name" href="#" onclick="return doclink('link-21', 'setSoapDebug', 'link-21');">setSoapDebug</a></tt><tt class="py-op">,</tt> </tt>
428<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt><tt class="py-string">"Print SOAP message output"</tt><tt class="py-op">)</tt> </tt>
429<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line"> </tt>
430<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-p"</tt><tt class="py-op">,</tt> </tt>
431<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">                      <tt class="py-string">"--pass-phrase-from-stdin"</tt><tt class="py-op">,</tt> </tt>
432<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">                      <tt class="py-name">action</tt><tt class="py-op">=</tt><tt class="py-string">"store_true"</tt><tt class="py-op">,</tt> </tt>
433<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"bPassPhraseFromStdin"</tt><tt class="py-op">,</tt> </tt>
434<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">                      <tt class="py-name">default</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
435<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt><tt class="py-string">"""\</tt> </tt>
436<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"><tt class="py-string">Take user's pass-phrase from stdin.  If this flag is omitted, pass-phrase is</tt> </tt>
437<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"><tt class="py-string">prompted for from tty"""</tt><tt class="py-op">)</tt> </tt>
438<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"> </tt>
439<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-i"</tt><tt class="py-op">,</tt> </tt>
440<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">                      <tt class="py-string">"--cookie-file"</tt><tt class="py-op">,</tt> </tt>
441<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">                      <tt class="py-name">action</tt><tt class="py-op">=</tt><tt class="py-string">"callback"</tt><tt class="py-op">,</tt> </tt>
442<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">                      <tt class="py-name">callback</tt><tt class="py-op">=</tt><tt id="link-22" class="py-name" targets="Function ndg.security.client.ndgSessionClient.setSessCookie()=ndg.security.client.ndgSessionClient-module.html#setSessCookie"><a title="ndg.security.client.ndgSessionClient.setSessCookie" class="py-name" href="#" onclick="return doclink('link-22', 'setSessCookie', 'link-22');">setSessCookie</a></tt><tt class="py-op">,</tt> </tt>
443<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">                      <tt id="link-23" class="py-name"><a title="ndg.security.common.AttAuthority.AttAuthority_services_types.ns0.HostInfo_Def.type" class="py-name" href="#" onclick="return doclink('link-23', 'type', 'link-18');">type</a></tt><tt class="py-op">=</tt><tt class="py-string">"string"</tt><tt class="py-op">,</tt> </tt>
444<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"sessCookie"</tt><tt class="py-op">,</tt> </tt>
445<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt>\ </tt>
446<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line"><tt class="py-string">"""Session cookie for --req-attr/-r call.  This is returned from a previous</tt> </tt>
447<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line"><tt class="py-string">connect call (-c USERNAME/--connect=USERNAME).  Note that connect and request</tt> </tt>
448<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line"><tt class="py-string">authoirsation calls can be combined.  In this case, this arg is not needed as</tt> </tt>
449<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line"><tt class="py-string">the cookie is passed directly from the connect call output to the</tt> </tt>
450<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line"><tt class="py-string">authorisation request e.g. ... -c username -r -s "http://..." -a</tt> </tt>
451<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line"><tt class="py-string">"http://..."""</tt><tt class="py-op">)</tt> </tt>
452<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line"> </tt>
453<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-e"</tt><tt class="py-op">,</tt> </tt>
454<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">                      <tt class="py-string">"--cookie-from-stdin"</tt><tt class="py-op">,</tt> </tt>
455<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">                      <tt class="py-name">action</tt><tt class="py-op">=</tt><tt class="py-string">"callback"</tt><tt class="py-op">,</tt> </tt>
456<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">                      <tt class="py-name">callback</tt><tt class="py-op">=</tt><tt id="link-24" class="py-name" targets="Function ndg.security.client.ndgSessionClient.setSessCookieFromStdin()=ndg.security.client.ndgSessionClient-module.html#setSessCookieFromStdin"><a title="ndg.security.client.ndgSessionClient.setSessCookieFromStdin" class="py-name" href="#" onclick="return doclink('link-24', 'setSessCookieFromStdin', 'link-24');">setSessCookieFromStdin</a></tt><tt class="py-op">,</tt> </tt>
457<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"sessCookie"</tt><tt class="py-op">,</tt> </tt>
458<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt><tt class="py-string">"Read session cookie from stdin."</tt><tt class="py-op">)</tt> </tt>
459<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line"> </tt>
460<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-m"</tt><tt class="py-op">,</tt> </tt>
461<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">                      <tt class="py-string">"--map-from-trusted-hosts"</tt><tt class="py-op">,</tt> </tt>
462<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">                      <tt class="py-name">action</tt><tt class="py-op">=</tt><tt class="py-string">"store_true"</tt><tt class="py-op">,</tt> </tt>
463<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"mapFromTrustedHosts"</tt><tt class="py-op">,</tt> </tt>
464<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">                      <tt class="py-name">default</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
465<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt>\ </tt>
466<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line"><tt class="py-string">"""For use with --req-attr/-r flag.  Set to allow the Session Manager to</tt> </tt>
467<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line"><tt class="py-string">automatically use Attribute Certificates from the user's wallet or, if no</tt> </tt>
468<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"><tt class="py-string">suitable ones are found, to contact other trusted hosts in order to get</tt> </tt>
469<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"><tt class="py-string">Attribute Certificates for mapping"""</tt><tt class="py-op">)</tt> </tt>
470<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"> </tt>
471<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-q"</tt><tt class="py-op">,</tt> </tt>
472<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">                      <tt class="py-string">"--req-role"</tt><tt class="py-op">,</tt> </tt>
473<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"reqRole"</tt><tt class="py-op">,</tt> </tt>
474<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt><tt class="py-string">"""\</tt> </tt>
475<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line"><tt class="py-string">For use with --req-attr/-r flag.  Making certifcate mapping more efficient</tt> </tt>
476<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line"><tt class="py-string">by specifying to the Session Manager what role is needed for attribute</tt> </tt>
477<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line"><tt class="py-string">certificates from trusted hosts in order to get a mapped Attribute Certificate</tt> </tt>
478<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"><tt class="py-string">back from the Attribute Authority"""</tt><tt class="py-op">)</tt> </tt>
479<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line"> </tt>
480<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-l"</tt><tt class="py-op">,</tt> </tt>
481<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">                      <tt class="py-string">"--rtn-ext-att-cert-list"</tt><tt class="py-op">,</tt> </tt>
482<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">                      <tt class="py-name">action</tt><tt class="py-op">=</tt><tt class="py-string">"store_true"</tt><tt class="py-op">,</tt> </tt>
483<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"rtnExtAttCertList"</tt><tt class="py-op">,</tt> </tt>
484<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">                      <tt class="py-name">default</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
485<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt>\ </tt>
486<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"><tt class="py-string">"""For use with --req-attr/-r flag.  Determines behaviour in the case where </tt> </tt>
487<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line"><tt class="py-string">authorisation is denied by an Attribute Authority.  If set, a list of</tt> </tt>
488<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"><tt class="py-string">candidate Attribute Certificates from trusted hosts will be returned.  Any one</tt> </tt>
489<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line"><tt class="py-string">of these could be re-input in a subsequent authorisation request by setting</tt> </tt>
490<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line"><tt class="py-string">the --ext-att-cert-list-file option.  The certificates can be used to obtain a</tt> </tt>
491<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line"><tt class="py-string">mapped Attribute Certificate from the import target Attribute Authority"""</tt><tt class="py-op">)</tt> </tt>
492<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line"> </tt>
493<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-f"</tt><tt class="py-op">,</tt> </tt>
494<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">                      <tt class="py-string">"--ext-att-cert-list-file"</tt><tt class="py-op">,</tt> </tt>
495<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"extAttCertListFile"</tt><tt class="py-op">,</tt> </tt>
496<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt>\ </tt>
497<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line"><tt class="py-string">"""For use with --req-attr/-r flag.  A file of concatenated Attribute</tt> </tt>
498<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line"><tt class="py-string">Certificates.  These are certificates from other import hosts trusted by the</tt> </tt>
499<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line"><tt class="py-string">Attribute Authority.  The Session Manager tries each in turn until the</tt> </tt>
500<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line"><tt class="py-string">Attribute Authority accepts one and uses it to create and return a mapped</tt> </tt>
501<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line"><tt class="py-string">Attribute Certificate"""</tt><tt class="py-op">)</tt> </tt>
502<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">     </tt>
503<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">add_option</tt><tt class="py-op">(</tt><tt class="py-string">"-t"</tt><tt class="py-op">,</tt> </tt>
504<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">                      <tt class="py-string">"--ext-trusted-hosts-file"</tt><tt class="py-op">,</tt> </tt>
505<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">                      <tt class="py-name">dest</tt><tt class="py-op">=</tt><tt class="py-string">"extTrustedHostsFile"</tt><tt class="py-op">,</tt> </tt>
506<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">                      <tt class="py-name">help</tt><tt class="py-op">=</tt>\ </tt>
507<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"><tt class="py-string">"""For use with --req-attr/-r flag.  Pass a file containing a comma </tt> </tt>
508<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"><tt class="py-string">separarated list of hosts that are trusted by the Attribute Authority.  The</tt> </tt>
509<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line"><tt class="py-string">Session Manager will contact these hosts in turn, stopping when one of them</tt> </tt>
510<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line"><tt class="py-string">grants it an Attribute Certificate that it can present to the target Attribute</tt> </tt>
511<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line"><tt class="py-string">Authority in order to get a mapped Attribute Certificate in return."""</tt><tt class="py-op">)</tt> </tt>
512<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line"> </tt>
513<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-name">options</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">parse_args</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
514<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line"> </tt>
515<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Variable ndg.security.common.sessionCookie.SessionCookie.sessMgrURI=ndg.security.common.sessionCookie.SessionCookie-class.html#sessMgrURI"><a title="ndg.security.common.sessionCookie.SessionCookie.sessMgrURI" class="py-name" href="#" onclick="return doclink('link-25', 'sessMgrURI', 'link-25');">sessMgrURI</a></tt><tt class="py-op">:</tt>         </tt>
516<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">        <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method ndg.security.common.XMLSec.XMLSecDoc.write()=ndg.security.common.XMLSec.XMLSecDoc-class.html#write,Method ndg.security.common.xmlsec.etree.XMLSecDoc.write()=ndg.security.common.xmlsec.etree.XMLSecDoc-class.html#write"><a title="ndg.security.common.XMLSec.XMLSecDoc.write
517ndg.security.common.xmlsec.etree.XMLSecDoc.write" class="py-name" href="#" onclick="return doclink('link-26', 'write', 'link-26');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"Error, No Session Manager WSDL URI set.\n\n"</tt><tt class="py-op">)</tt> </tt>
518<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">        <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">print_help</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
519<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
520<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">         </tt>
521<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">    <tt class="py-name">passPhrase</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
522<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">    </tt>
523<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">    <tt class="py-comment"># For connect/addUser a pass-phrase is needed</tt> </tt>
524<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">if</tt> <tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">newUserName</tt> <tt class="py-keyword">or</tt> <tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Variable ndg.security.common.SQLObject.CredRepos.UserID.userName=ndg.security.common.SQLObject.CredRepos.UserID-class.html#userName"><a title="ndg.security.common.SQLObject.CredRepos.UserID.userName" class="py-name" href="#" onclick="return doclink('link-27', 'userName', 'link-27');">userName</a></tt><tt class="py-op">:</tt> </tt>
525<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">         </tt>
526<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">bPassPhraseFromStdin</tt><tt class="py-op">:</tt> </tt>
527<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">            <tt class="py-comment"># Read from standard input</tt> </tt>
528<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">passPhrase</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdin</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.SSOClientConfig.read
529ndg.security.common.AttCert.AttCert.read
530ndg.security.common.X509.X509Cert.read
531ndg.security.common.XMLSec.XMLSecDoc.read
532ndg.security.common.openssl.OpenSSLConfig.read
533ndg.security.common.wssecurity.WSSecurityConfig.read
534ndg.security.common.xmlsec.etree.XMLSecDoc.read
535ndg.security.server.sso.sso.config.ssoServiceMiddleware.SSOServiceConfig.read" class="py-name" href="#" onclick="return doclink('link-28', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt>            </tt>
536<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
537<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">            <tt class="py-comment"># Obtain from prompt</tt> </tt>
538<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
539<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">                <tt class="py-name">passPhrase</tt> <tt class="py-op">=</tt> <tt class="py-name">getpass</tt><tt class="py-op">.</tt><tt class="py-name">getpass</tt><tt class="py-op">(</tt><tt class="py-name">prompt</tt><tt class="py-op">=</tt><tt class="py-string">"Login pass-phrase: "</tt><tt class="py-op">)</tt>  </tt>
540<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">KeyboardInterrupt</tt><tt class="py-op">:</tt> </tt>
541<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
542<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line"> </tt>
543<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyPwd
544ndg.security.test.attAuthority.AttAuthorityClientTest.AttAuthorityClientTestCase.clntPriKeyPwd" class="py-name" href="#" onclick="return doclink('link-29', 'clntPriKeyPwd', 'link-10');">clntPriKeyPwd</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Variable ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyFilePath=ndg.security.common.ca.CertificateAuthorityClient-class.html#clntPriKeyFilePath"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyFilePath" class="py-name" href="#" onclick="return doclink('link-30', 'clntPriKeyFilePath', 'link-30');">clntPriKeyFilePath</a></tt><tt class="py-op">:</tt> </tt>
545<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">        <tt class="py-comment"># Obtain from prompt</tt> </tt>
546<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
547<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">            <tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyPwd
548ndg.security.test.attAuthority.AttAuthorityClientTest.AttAuthorityClientTestCase.clntPriKeyPwd" class="py-name" href="#" onclick="return doclink('link-31', 'clntPriKeyPwd', 'link-10');">clntPriKeyPwd</a></tt> <tt class="py-op">=</tt> <tt class="py-name">getpass</tt><tt class="py-op">.</tt><tt class="py-name">getpass</tt><tt class="py-op">(</tt>\ </tt>
549<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">                                    <tt class="py-name">prompt</tt><tt class="py-op">=</tt><tt class="py-string">"Client private key pass-phrase: "</tt><tt class="py-op">)</tt>  </tt>
550<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">KeyboardInterrupt</tt><tt class="py-op">:</tt> </tt>
551<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
552<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line"> </tt>
553<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">                   </tt>
554<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">    <tt id="link-32" class="py-name" targets="Variable ndg.security.common.CredWallet.CredWalletAttributeRequestDenied.extAttCertList=ndg.security.common.CredWallet.CredWalletAttributeRequestDenied-class.html#extAttCertList,Variable ndg.security.common.SessionMgr.AttributeRequestDenied.extAttCertList=ndg.security.common.SessionMgr.AttributeRequestDenied-class.html#extAttCertList"><a title="ndg.security.common.CredWallet.CredWalletAttributeRequestDenied.extAttCertList
555ndg.security.common.SessionMgr.AttributeRequestDenied.extAttCertList" class="py-name" href="#" onclick="return doclink('link-32', 'extAttCertList', 'link-32');">extAttCertList</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
556<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">                 </tt>
557<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">extAttCertListFile</tt><tt class="py-op">:</tt> </tt>
558<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
559<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">            <tt class="py-comment"># Open and read file removing any &lt;?xml ... ?&gt; headers</tt> </tt>
560<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">sExtAttCertListFile</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">extAttCertListFile</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.SSOClientConfig.read
561ndg.security.common.AttCert.AttCert.read
562ndg.security.common.X509.X509Cert.read
563ndg.security.common.XMLSec.XMLSecDoc.read
564ndg.security.common.openssl.OpenSSLConfig.read
565ndg.security.common.wssecurity.WSSecurityConfig.read
566ndg.security.common.xmlsec.etree.XMLSecDoc.read
567ndg.security.server.sso.sso.config.ssoServiceMiddleware.SSOServiceConfig.read" class="py-name" href="#" onclick="return doclink('link-33', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
568<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">            <tt class="py-name">sAttCertTmp</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">"\s*&lt;\?xml.*\?&gt;\s*"</tt><tt class="py-op">,</tt> <tt class="py-string">""</tt><tt class="py-op">,</tt> <tt class="py-name">sExtAttCertListFile</tt><tt class="py-op">)</tt> </tt>
569<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">             </tt>
570<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">            <tt class="py-comment"># Convert into a list</tt> </tt>
571<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt id="link-34" class="py-name"><a title="ndg.security.common.CredWallet.CredWalletAttributeRequestDenied.extAttCertList
572ndg.security.common.SessionMgr.AttributeRequestDenied.extAttCertList" class="py-name" href="#" onclick="return doclink('link-34', 'extAttCertList', 'link-32');">extAttCertList</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'&lt;attributeCertificate&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-name">ac</tt> <tt class="py-keyword">for</tt> <tt class="py-name">ac</tt> <tt class="py-keyword">in</tt> \ </tt>
573<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">                            <tt class="py-name">sAttCertTmp</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;attributeCertificate&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
574<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
575<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">            <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="ndg.security.common.XMLSec.XMLSecDoc.write
576ndg.security.common.xmlsec.etree.XMLSecDoc.write" class="py-name" href="#" onclick="return doclink('link-35', 'write', 'link-26');">write</a></tt><tt class="py-op">(</tt>\ </tt>
577<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">                <tt class="py-string">"Error parsing file \%s\" for option \"%s\": %s"</tt> <tt class="py-op">%</tt> \ </tt>
578<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-string">"--ext-att-cert-list-file\"/\"-f"</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
579<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line"> </tt>
580<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">         </tt>
581<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">    <tt class="py-name">extTrustedHostList</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
582<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line"> </tt>
583<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">extTrustedHostsFile</tt><tt class="py-op">:</tt> </tt>
584<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
585<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">            <tt class="py-name">extTrustedHostList</tt> <tt class="py-op">=</tt> \ </tt>
586<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line">                <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"\s*,\s*"</tt><tt class="py-op">,</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">extTrustedHostsFile</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="ndg.security.client.ssoclient.ssoclient.config.ssoClientMiddleware.SSOClientConfig.read
587ndg.security.common.AttCert.AttCert.read
588ndg.security.common.X509.X509Cert.read
589ndg.security.common.XMLSec.XMLSecDoc.read
590ndg.security.common.openssl.OpenSSLConfig.read
591ndg.security.common.wssecurity.WSSecurityConfig.read
592ndg.security.common.xmlsec.etree.XMLSecDoc.read
593ndg.security.server.sso.sso.config.ssoServiceMiddleware.SSOServiceConfig.read" class="py-name" href="#" onclick="return doclink('link-36', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
594<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">             </tt>
595<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
596<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line">            <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="ndg.security.common.XMLSec.XMLSecDoc.write
597ndg.security.common.xmlsec.etree.XMLSecDoc.write" class="py-name" href="#" onclick="return doclink('link-37', 'write', 'link-26');">write</a></tt><tt class="py-op">(</tt>\ </tt>
598<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line">                <tt class="py-string">"Error parsing file \%s\" for option \"%s\": %s"</tt> <tt class="py-op">%</tt> \ </tt>
599<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-string">"--ext-trusted-host-file\"/\"-t"</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
600<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line"> </tt>
601<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line"> </tt>
602<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line">    <tt class="py-comment"># Initialise session client</tt> </tt>
603<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
604<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line">        <tt class="py-name">sessClnt</tt> <tt class="py-op">=</tt> <tt id="link-38" class="py-name" targets="Class ndg.security.common.SessionMgr.SessionMgrClient=ndg.security.common.SessionMgr.SessionMgrClient-class.html"><a title="ndg.security.common.SessionMgr.SessionMgrClient" class="py-name" href="#" onclick="return doclink('link-38', 'SessionMgrClient', 'link-38');">SessionMgrClient</a></tt><tt class="py-op">(</tt><tt class="py-name">smWSDL</tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="ndg.security.common.sessionCookie.SessionCookie.sessMgrURI" class="py-name" href="#" onclick="return doclink('link-39', 'sessMgrURI', 'link-25');">sessMgrURI</a></tt><tt class="py-op">,</tt> </tt>
605<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line">                             <tt class="py-name">smCertFilePath</tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">smCertFilePath</tt><tt class="py-op">,</tt> </tt>
606<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line">                             <tt id="link-40" class="py-name" targets="Variable ndg.security.common.ca.CertificateAuthorityClient.clntCertFilePath=ndg.security.common.ca.CertificateAuthorityClient-class.html#clntCertFilePath"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntCertFilePath" class="py-name" href="#" onclick="return doclink('link-40', 'clntCertFilePath', 'link-40');">clntCertFilePath</a></tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntCertFilePath" class="py-name" href="#" onclick="return doclink('link-41', 'clntCertFilePath', 'link-40');">clntCertFilePath</a></tt><tt class="py-op">,</tt> </tt>
607<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line">                             <tt id="link-42" class="py-name"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyFilePath" class="py-name" href="#" onclick="return doclink('link-42', 'clntPriKeyFilePath', 'link-30');">clntPriKeyFilePath</a></tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyFilePath" class="py-name" href="#" onclick="return doclink('link-43', 'clntPriKeyFilePath', 'link-30');">clntPriKeyFilePath</a></tt><tt class="py-op">,</tt> </tt>
608<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line">                             <tt class="py-name">tracefile</tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">soapDebug</tt><tt class="py-op">)</tt> </tt>
609<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
610<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">        <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="ndg.security.common.XMLSec.XMLSecDoc.write
611ndg.security.common.xmlsec.etree.XMLSecDoc.write" class="py-name" href="#" onclick="return doclink('link-44', 'write', 'link-26');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"Initialising client: %s\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
612<a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
613<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line">     </tt>
614<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">    <tt class="py-name">methodCall</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt>     </tt>
615<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
616<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">newUserName</tt><tt class="py-op">:</tt> </tt>
617<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">            <tt class="py-name">methodCall</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
618<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">             </tt>
619<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line">            <tt class="py-name">sessClnt</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Method ndg.security.common.CredWallet.CredRepos.addUser()=ndg.security.common.CredWallet.CredRepos-class.html#addUser,Method ndg.security.common.CredWallet.NullCredRepos.addUser()=ndg.security.common.CredWallet.NullCredRepos-class.html#addUser,Method ndg.security.common.SQLObject.CredRepos.addUser()=ndg.security.common.SQLObject.CredRepos-class.html#addUser"><a title="ndg.security.common.CredWallet.CredRepos.addUser
620ndg.security.common.CredWallet.NullCredRepos.addUser
621ndg.security.common.SQLObject.CredRepos.addUser" class="py-name" href="#" onclick="return doclink('link-45', 'addUser', 'link-45');">addUser</a></tt><tt class="py-op">(</tt><tt id="link-46" class="py-name"><a title="ndg.security.common.SQLObject.CredRepos.UserID.userName" class="py-name" href="#" onclick="return doclink('link-46', 'userName', 'link-27');">userName</a></tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">newUserName</tt><tt class="py-op">,</tt>  </tt>
622<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">                             <tt class="py-name">pPhrase</tt><tt class="py-op">=</tt><tt class="py-name">passPhrase</tt><tt class="py-op">,</tt> </tt>
623<a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line">                             <tt id="link-47" class="py-name"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyPwd
624ndg.security.test.attAuthority.AttAuthorityClientTest.AttAuthorityClientTestCase.clntPriKeyPwd" class="py-name" href="#" onclick="return doclink('link-47', 'clntPriKeyPwd', 'link-10');">clntPriKeyPwd</a></tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyPwd
625ndg.security.test.attAuthority.AttAuthorityClientTest.AttAuthorityClientTestCase.clntPriKeyPwd" class="py-name" href="#" onclick="return doclink('link-48', 'clntPriKeyPwd', 'link-10');">clntPriKeyPwd</a></tt><tt class="py-op">)</tt> </tt>
626<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
627<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line">                             </tt>
628<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="ndg.security.common.SQLObject.CredRepos.UserID.userName" class="py-name" href="#" onclick="return doclink('link-49', 'userName', 'link-27');">userName</a></tt><tt class="py-op">:</tt> </tt>
629<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line">            <tt class="py-name">methodCall</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
630<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line">             </tt>
631<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line">            <tt class="py-name">sSessCookie</tt> <tt class="py-op">=</tt> <tt class="py-name">sessClnt</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Method ndg.security.common.SessionMgr.SessionMgrClient.connect()=ndg.security.common.SessionMgr.SessionMgrClient-class.html#connect,Method ndg.security.common.SessionMgr.SessionMgr_services.SessionMgrBindingSOAP.connect()=ndg.security.common.SessionMgr.SessionMgr_services.SessionMgrBindingSOAP-class.html#connect,Method ndg.security.common.m2CryptoSSLUtility.HTTPSConnection.connect()=ndg.security.common.m2CryptoSSLUtility.HTTPSConnection-class.html#connect,Method ndg.security.server.SessionMgr.SessionMgr.connect()=ndg.security.server.SessionMgr.SessionMgr-class.html#connect"><a title="ndg.security.common.SessionMgr.SessionMgrClient.connect
632ndg.security.common.SessionMgr.SessionMgr_services.SessionMgrBindingSOAP.connect
633ndg.security.common.m2CryptoSSLUtility.HTTPSConnection.connect
634ndg.security.server.SessionMgr.SessionMgr.connect" class="py-name" href="#" onclick="return doclink('link-50', 'connect', 'link-50');">connect</a></tt><tt class="py-op">(</tt><tt id="link-51" class="py-name"><a title="ndg.security.common.SQLObject.CredRepos.UserID.userName" class="py-name" href="#" onclick="return doclink('link-51', 'userName', 'link-27');">userName</a></tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="ndg.security.common.SQLObject.CredRepos.UserID.userName" class="py-name" href="#" onclick="return doclink('link-52', 'userName', 'link-27');">userName</a></tt><tt class="py-op">,</tt>  </tt>
635<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line">                                       <tt class="py-name">pPhrase</tt><tt class="py-op">=</tt><tt class="py-name">passPhrase</tt><tt class="py-op">,</tt> </tt>
636<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line">                                       <tt id="link-53" class="py-name"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyPwd
637ndg.security.test.attAuthority.AttAuthorityClientTest.AttAuthorityClientTestCase.clntPriKeyPwd" class="py-name" href="#" onclick="return doclink('link-53', 'clntPriKeyPwd', 'link-10');">clntPriKeyPwd</a></tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyPwd
638ndg.security.test.attAuthority.AttAuthorityClientTest.AttAuthorityClientTestCase.clntPriKeyPwd" class="py-name" href="#" onclick="return doclink('link-54', 'clntPriKeyPwd', 'link-10');">clntPriKeyPwd</a></tt><tt class="py-op">)</tt>             </tt>
639<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-name">sSessCookie</tt> </tt>
640<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">            <tt class="py-comment"># Don't exit here - req-autho may have been set too</tt> </tt>
641<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line"><tt class="py-comment"></tt>             </tt>
642<a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">attAuthorityURI</tt><tt class="py-op">:</tt> </tt>
643<a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line">            <tt class="py-name">methodCall</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
644<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line"> </tt>
645<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="ndg.security.common.SQLObject.CredRepos.UserID.userName" class="py-name" href="#" onclick="return doclink('link-55', 'userName', 'link-27');">userName</a></tt><tt class="py-op">:</tt> </tt>
646<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line">                <tt class="py-comment"># Connect was set also - parse cookie in order to session ID</tt> </tt>
647<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line"><tt class="py-comment"></tt>                <tt class="py-comment"># and WSDL address</tt> </tt>
648<a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line"><tt class="py-comment"></tt>                <tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">sessCookie</tt> <tt class="py-op">=</tt> <tt class="py-name">SimpleCookie</tt><tt class="py-op">(</tt><tt class="py-name">sSessCookie</tt><tt class="py-op">)</tt> </tt>
649<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line">                 </tt>
650<a name="L368"></a><tt class="py-lineno">368</tt>  <tt class="py-line">            <tt class="py-name">authResp</tt> <tt class="py-op">=</tt> <tt class="py-name">sessClnt</tt><tt class="py-op">.</tt><tt class="py-name">reqAuthorisation</tt><tt class="py-op">(</tt>\ </tt>
651<a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line">                            <tt class="py-name">sessCookie</tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">sessCookie</tt><tt class="py-op">,</tt> </tt>
652<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line">                            <tt class="py-name">aaWSDL</tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">attAuthorityURI</tt><tt class="py-op">,</tt> </tt>
653<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line">                            <tt class="py-name">aaCert</tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">aaCert</tt><tt class="py-op">,</tt> </tt>
654<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">                            <tt class="py-name">mapFromTrustedHosts</tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">mapFromTrustedHosts</tt><tt class="py-op">,</tt> </tt>
655<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line">                            <tt class="py-name">reqRole</tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">reqRole</tt><tt class="py-op">,</tt> </tt>
656<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line">                            <tt class="py-name">rtnExtAttCertList</tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt class="py-name">rtnExtAttCertList</tt><tt class="py-op">,</tt> </tt>
657<a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line">                            <tt id="link-56" class="py-name"><a title="ndg.security.common.CredWallet.CredWalletAttributeRequestDenied.extAttCertList
658ndg.security.common.SessionMgr.AttributeRequestDenied.extAttCertList" class="py-name" href="#" onclick="return doclink('link-56', 'extAttCertList', 'link-32');">extAttCertList</a></tt><tt class="py-op">=</tt><tt id="link-57" class="py-name"><a title="ndg.security.common.CredWallet.CredWalletAttributeRequestDenied.extAttCertList
659ndg.security.common.SessionMgr.AttributeRequestDenied.extAttCertList" class="py-name" href="#" onclick="return doclink('link-57', 'extAttCertList', 'link-32');">extAttCertList</a></tt><tt class="py-op">,</tt> </tt>
660<a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line">                            <tt class="py-name">extTrustedHostList</tt><tt class="py-op">=</tt><tt class="py-name">extTrustedHostList</tt><tt class="py-op">,</tt> </tt>
661<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line">                            <tt id="link-58" class="py-name"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyPwd
662ndg.security.test.attAuthority.AttAuthorityClientTest.AttAuthorityClientTestCase.clntPriKeyPwd" class="py-name" href="#" onclick="return doclink('link-58', 'clntPriKeyPwd', 'link-10');">clntPriKeyPwd</a></tt><tt class="py-op">=</tt><tt class="py-name">options</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="ndg.security.common.ca.CertificateAuthorityClient.clntPriKeyPwd
663ndg.security.test.attAuthority.AttAuthorityClientTest.AttAuthorityClientTestCase.clntPriKeyPwd" class="py-name" href="#" onclick="return doclink('link-59', 'clntPriKeyPwd', 'link-10');">clntPriKeyPwd</a></tt><tt class="py-op">)</tt> </tt>
664<a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-name">authResp</tt> </tt>
665<a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line">         </tt>
666<a name="L380"></a><tt class="py-lineno">380</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">methodCall</tt><tt class="py-op">:</tt>    </tt>
667<a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line">            <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="ndg.security.common.XMLSec.XMLSecDoc.write
668ndg.security.common.xmlsec.etree.XMLSecDoc.write" class="py-name" href="#" onclick="return doclink('link-60', 'write', 'link-26');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"Set a flag to specify the web-service call "</tt> <tt class="py-op">+</tt> \ </tt>
669<a name="L382"></a><tt class="py-lineno">382</tt>  <tt class="py-line">                             <tt class="py-string">"e.g. --connect=USERNAME\n\n"</tt><tt class="py-op">)</tt> </tt>
670<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line">            <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">print_help</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
671<a name="L384"></a><tt class="py-lineno">384</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
672<a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line">             </tt>
673<a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
674<a name="L387"></a><tt class="py-lineno">387</tt>  <tt class="py-line">        <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="ndg.security.common.XMLSec.XMLSecDoc.write
675ndg.security.common.xmlsec.etree.XMLSecDoc.write" class="py-name" href="#" onclick="return doclink('link-61', 'write', 'link-26');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">linesep</tt><tt class="py-op">)</tt> </tt>
676<a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line">      </tt>
677<a name="L389"></a><tt class="py-lineno">389</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
678</div><a name="L390"></a><tt class="py-lineno">390</tt>  <tt class="py-line"> </tt><script type="text/javascript">
679<!--
680expandto(location.href);
681// -->
682</script>
683</pre>
684<br />
685<!-- ==================== NAVIGATION BAR ==================== -->
686<table class="navbar" border="0" width="100%" cellpadding="0"
687       bgcolor="#a0c0ff" cellspacing="0">
688  <tr valign="middle">
689  <!-- Home link -->
690      <th>&nbsp;&nbsp;&nbsp;<a
691        href="ndg-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
692
693  <!-- Tree link -->
694      <th>&nbsp;&nbsp;&nbsp;<a
695        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
696
697  <!-- Index link -->
698      <th>&nbsp;&nbsp;&nbsp;<a
699        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
700
701  <!-- Help link -->
702      <th>&nbsp;&nbsp;&nbsp;<a
703        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
704
705  <!-- Project homepage -->
706      <th class="navbar" align="right" width="100%">
707        <table border="0" cellpadding="0" cellspacing="0">
708          <tr><th class="navbar" align="center"
709            >NDG Security</th>
710          </tr></table></th>
711  </tr>
712</table>
713<table border="0" cellpadding="0" cellspacing="0" width="100%%">
714  <tr>
715    <td align="left" class="footer">
716    <a href="epydoc-log.html">Generated by Epydoc
717    3.0.1 on Thu Sep  4 09:37:55 2008</a>
718    </td>
719    <td align="right" class="footer">
720      <a target="mainFrame" href="http://epydoc.sourceforge.net"
721        >http://epydoc.sourceforge.net</a>
722    </td>
723  </tr>
724</table>
725
726<script type="text/javascript">
727  <!--
728  // Private objects are initially displayed (because if
729  // javascript is turned off then we want them to be
730  // visible); but by default, we want to hide them.  So hide
731  // them unless we have a cookie that says to show them.
732  checkCookie();
733  // -->
734</script>
735</body>
736</html>
Note: See TracBrowser for help on using the repository browser.