Changeset 2902 for TI12-security/trunk
- Timestamp:
- 24/09/07 13:51:40 (13 years ago)
- Location:
- TI12-security/trunk/python
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
TI12-security/trunk/python/ndg.security.common/ndg/security/common/AttAuthority/__init__.py
r2884 r2902 151 151 else: 152 152 self._transport = None 153 154 uri = property(fset=__setURI, doc="Set Attribute Authority URI") 153 154 155 #_________________________________________________________________________ 156 def __getURI(self): 157 """Get URI for service 158 @rtype: string 159 @return: uri for service to be invoked""" 160 return self.__uri 161 162 uri = property(fset=__setURI, fget=__getURI,doc="Attribute Authority URI") 155 163 156 164 -
TI12-security/trunk/python/ndg.security.common/ndg/security/common/CredWallet.py
r2884 r2902 13 13 __revision__ = '$Id$' 14 14 15 import logging 16 log = logging.getLogger(__name__) 15 17 16 18 # Temporary store of certificates for use with CredWallet getAttCert() … … 37 39 from wsSecurity import SignatureHandler 38 40 except ImportError: 41 log.warning('Loading CredWallet without SOAP interface imports') 39 42 pass 40 43 … … 46 49 aaImportError = False 47 50 except: 51 log.warning(\ 52 'Loading CredWallet for SOAP interface to Attribute Authority') 48 53 pass 49 54 … … 61 66 62 67 68 class _CredWalletException(Exception): 69 """Generic Exception class for CredWallet module. Overrides Exception to 70 enable writing to the log""" 71 def __init__(self, msg): 72 log.error(msg) 73 super(_CredWalletException, self).__init__(msg) 74 63 75 #_____________________________________________________________________________ 64 class CredWalletError(Exception): 65 """Exception handling for NDG CredentialWallet class.""" 76 class CredWalletError(_CredWalletException): 77 """Exception handling for NDG Credential Wallet class. Overrides Exception to 78 enable writing to the log""" 66 79 67 80 68 81 #_____________________________________________________________________________ 69 class CredWalletAttributeRequestDenied( Exception):82 class CredWalletAttributeRequestDenied(CredWalletError): 70 83 """Handling exception where CredWallet is denied authorisation by an 71 84 Attribute Authority.""" … … 97 110 self.__extAttCertList = [] 98 111 99 Exception.__init__(self, *args, **kw)112 super(CredWalletAttributeRequestDenied, self).__init__(self, *args, **kw) 100 113 101 114 def __getTrustedHostInfo(self): … … 118 131 "from the target Attribute Authority") 119 132 120 121 133 122 134 #_____________________________________________________________________________ 123 135 class _MetaCredWallet(type): … … 216 228 left before expiry then replace it.""" 217 229 218 230 log.debug("Calling CredWallet.__init__ ...") 231 219 232 self.attCertRefreshElapse = attCertRefreshElapse 220 233 … … 244 257 # Make a connection to the Credentials Repository 245 258 if self.__credRepos: 259 log.info(\ 260 'Checking CredentialRepository for credentials for user "%s"' % \ 261 self.__dn) 262 246 263 if not isinstance(self.__credRepos, CredRepos): 247 264 raise CredWalletError, \ … … 287 304 # Filter out expired or otherwise invalid certificates 288 305 self.audit() 289 290 291 def __str__(self):292 return "<Credential Wallet instance>"293 306 294 307 … … 419 432 @return: new Attribute Authority client instance""" 420 433 434 log.debug('CredWallet.__createAAClnt for service: "%s"' % aaURI) 435 421 436 # Initialise WS-Security signature handling to pass 422 437 # BinarySecurityToken containing proxy cert and user cert that issued … … 582 597 expired or are otherwise invalid.""" 583 598 599 log.debug("CredWallet.audit ...") 600 584 601 # Nb. No signature check is carried out. To do a check, access is 585 602 # needed to the cert of the CA that issued the Attribute Authority's … … 601 618 removing invalid ones""" 602 619 620 log.debug("CredWallet.updateCredRepos ...") 621 603 622 if not self.__credRepos: 604 623 raise CredWalletError, \ … … 638 657 Attribute Authority""" 639 658 659 log.debug("CredWallet.__getAttCert ...") 660 640 661 if aaClnt is None: 641 662 aaClnt = self.__aaClnt … … 643 664 if aaClnt is not None: 644 665 try: 645 attCert = aaClnt.getAttCert(userAttCert=extAttCert) 666 attCert = aaClnt.getAttCert(userAttCert=extAttCert) 667 668 log.info(\ 669 'Granted Attribute Certificate from issuer DN = "%s" at "%s"' % \ 670 (attCert.issuerDN, aaClnt.uri)) 671 646 672 except AttributeRequestDenied, e: 647 673 raise CredWalletAttributeRequestDenied, str(e) … … 656 682 attCert = self.__aa.getAttCert(userAttCert=extAttCert) 657 683 684 log.info(\ 685 'Granted Attribute Certificate from issuer DN = "%s"' % \ 686 attCert.issuerDN) 687 658 688 except AttAuthorityAccessDenied, e: 659 689 raise CredWalletAttributeRequestDenied, str(e) … … 680 710 # Nb. if the certificates signature is invalid, it will be rejected 681 711 self.addCredential(attCert) 682 683 712 684 713 return attCert 685 714 … … 706 735 """ 707 736 737 self.debug(\ 738 'CredWallet.getAATrustedHostInfo for role "%s" and service: "%s"' % \ 739 (userRole, aaURI or aaPropFilePath)) 708 740 if aaURI: 709 741 self.__setAAuri(aaURI) … … 849 881 replace it.""" 850 882 883 log.debug("CredWallet.getAttCert ...") 884 851 885 if aaURI: 852 886 self.__setAAuri(aaURI) … … 861 895 # Find out the site ID for the target AA by calling AA's host 862 896 # info WS method 897 log.debug("CredWallet.getAttCert - check AA site ID ...") 898 863 899 try: 864 900 hostInfo = self.__aaClnt.getHostInfo() … … 878 914 879 915 attCert = self.__credentials[aaName]['attCert'] 880 if attCert.isValidTime(dtNow=dtNow): 916 if attCert.isValidTime(dtNow=dtNow): 917 log.info("Retrieved an existing %s AC from the wallet" % \ 918 aaName) 881 919 return attCert 882 920 … … 894 932 # centres) 895 933 if extTrustedHostList: 934 log.info(\ 935 "Checking for ACs in wallet matching list of trusted hosts set: %s" % 936 extTrustedHostList) 937 896 938 if not self.__mapFromTrustedHosts: 897 939 raise CredWalletError, "A list of trusted hosts has been " + \ … … 921 963 922 964 except AttributeError: 923 924 # No List set - attempt authorisation without 965 log.debug(\ 966 "No external Attribute Certificates - try request without mapping") 967 # No List set - attempt request without 925 968 # using mapping from trusted hosts 926 969 extAttCert = None 927 970 928 971 except IndexError: 929 972 … … 950 993 951 994 except CredWalletAttributeRequestDenied, attributeRequestDenied: 952 953 # If a required role was set then it's possible to go954 # to get certificates with mapped roles from trusted hosts955 # Shouldn't need to set a role - setting a role makes it more956 # efficient but it's not essential957 #958 # P J Kershaw 29/03/06959 # if not reqRole:960 # raise CredWalletAttributeRequestDenied(\961 # "No user role was input in order to map to " + \962 # "a role in a trusted host")963 964 995 if not mapFromTrustedHosts and not rtnExtAttCertList: 965 996 # Creating a mapped certificate is not allowed - raise … … 967 998 raise attributeRequestDenied 968 999 969 970 1000 if isinstance(extAttCertList, list): 971 1001 # An list of attribute certificates from trusted hosts 972 1002 # is present continue cycling through this until one of 973 1003 # them is accepted and a mapped certificate can be derived 1004 log.debug(\ 1005 "AC request denied - but external ACs available to try mapped AC request ...") 974 1006 continue 975 1007 … … 977 1009 # to identify attribute certificates from other hosts which 978 1010 # could be used to make a mapped certificate 1011 log.debug(\ 1012 "Getting a list of trusted hosts for mapped AC request ...") 979 1013 try: 980 1014 trustedHostInfo = self.getAATrustedHostInfo(reqRole, … … 1001 1035 # Look for Attribute Certificates with matching issuer host 1002 1036 # names 1037 log.debug(\ 1038 "Checking wallet for ACs issued by one of the trusted hosts...") 1003 1039 for hostName in self.__credentials: 1004 1040 … … 1015 1051 1016 1052 if not extAttCertList: 1053 log.debug("No wallet ACs matched any of the trusted " + \ 1054 "hosts. - Try request for an AC from a " + \ 1055 "trusted host ...") 1056 1017 1057 # No certificates in the wallet matched the trusted host 1018 1058 # and required roles … … 1038 1078 1039 1079 except Exception, e: 1040 pass # ignore any errors and continue 1080 # ignore any errors and continue 1081 log.warning('AC request to trusted host "%s"' % \ 1082 info['aaURI'] + ' resulted in: %s'%e) 1083 1041 1084 1042 1085 if not extAttCertList: … … 1061 1104 1062 1105 #_____________________________________________________________________________ 1063 class CredReposError( Exception):1106 class CredReposError(_CredWalletException): 1064 1107 """Exception handling for NDG Credential Repository class.""" 1065 pass1066 1108 1067 1109 -
TI12-security/trunk/python/ndg.security.common/ndg/security/common/SessionMgr/__init__.py
r2884 r2902 205 205 # Ensure SSL settings are cancelled 206 206 self.__setSSLPeerCertCN(None) 207 208 uri = property(fset=__setURI, doc="Set Session Manager URI") 207 208 #_________________________________________________________________________ 209 def __getURI(self): 210 """Get URI for service 211 @rtype: string 212 @return: uri for service to be invoked""" 213 return self.__uri 214 215 uri = property(fset=__setURI, fget=__getURI, doc="Session Manager URI") 209 216 210 217 -
TI12-security/trunk/python/ndg.security.common/ndg/security/common/m2CryptoSSLUtility.py
r2885 r2902 123 123 @type defWriteTimeout: M2Crypto.SSL.timeout 124 124 @cvar defWriteTimeout: default timeout for write operations""" 125 defReadTimeout = SSL.timeout(sec= 3.)126 defWriteTimeout = SSL.timeout(sec= 3.)125 defReadTimeout = SSL.timeout(sec=20.) 126 defWriteTimeout = SSL.timeout(sec=20.) 127 127 128 128 def __init__(self, *args, **kw): … … 170 170 self.sock.set_post_connection_check_callback( 171 171 self._postConnectionCheck) 172 172 173 173 self.sock.set_socket_read_timeout(self.readTimeout) 174 174 self.sock.set_socket_write_timeout(self.writeTimeout) -
TI12-security/trunk/python/ndg.security.server/ndg/security/server/AttAuthority/__init__.py
r2900 r2902 43 43 class AttAuthorityError(Exception): 44 44 """Exception handling for NDG Attribute Authority class.""" 45 def __init__(self, msg): 46 log.error(msg) 47 super(AttAuthorityError, self).__init__(msg) 48 45 49 46 50 #_____________________________________________________________________________ … … 124 128 read. Set this flag to False to override. 125 129 """ 126 130 log.info("Initialising service ... ") 131 127 132 # Base class initialisation 128 133 dict.__init__(self) … … 199 204 could be via a user database""" 200 205 201 log.debug("Loading User roles inte face ...")206 log.debug("Loading User roles interface ...") 202 207 try: 203 208 try: … … 242 247 # Instantiate custom class 243 248 try: 244 self.__userRoles =userRolesClass(self.__prop['userRolesPropFile'])249 self.__userRoles=userRolesClass(self.__prop['userRolesPropFile']) 245 250 246 251 except Exception, e: 247 252 raise AttAuthorityError, \ 248 253 "Error instantiating User Roles interface: " + str(e) 249 254 255 log.info(\ 256 'Instantiated "%s" class from user roles module: "%s" in "%s"' %\ 257 (self.__prop['userRolesClassName'], 258 self.__prop['userRolesModName'], 259 self.__prop['userRolesModFilePath'])) 260 250 261 251 262 #_________________________________________________________________________ … … 573 584 574 585 log.info(\ 575 'Issued an Attribute Certificate to "%s" with roles: %s' %\576 ( attCert.roles, userId))586 'Issued an Attribute Certificate to "%s" with roles: "%s"' %\ 587 (userId, '", "'.join(attCert.roles))) 577 588 578 589 # Return the cert to caller … … 596 607 """ 597 608 609 log.debug("Calling readProperties ...") 598 610 try: 599 611 tree = ElementTree.parse(self.__propFilePath) … … 655 667 'Invalid directory path Attribute Certificates store "%s": %s' % \ 656 668 (self.__prop['attCertDir'], osError.strerror) 657 669 670 log.info('Loaded properties from "%s"' % self.__propFilePath) 671 658 672 659 673 #_________________________________________________________________________ … … 665 679 omitted, it uses member variable __prop['mapConfigFile']. 666 680 """ 681 682 log.debug("Reading map configuration file ...") 667 683 668 684 if mapConfigFilePath is not None: … … 816 832 self.__localRole2RemoteRole[trustedHost][localRole] = \ 817 833 [remoteRole] 834 log.info('Loaded map configuration file "%s"' % \ 835 self.__prop['mapConfigFile']) 836 818 837 819 820 838 #_________________________________________________________________________ 821 839 def userIsRegistered(self, userId): … … 829 847 @rtype: bool 830 848 @return: True if user is registered, False otherwise""" 849 log.debug("Calling userIsRegistered ...") 831 850 return self.__userRoles.userIsRegistered(userId) 832 851 … … 840 859 @return: list of roles for the given user ID""" 841 860 861 log.debug('Calling getRoles for user "%s" ...' % userId) 862 842 863 # Call to AAUserRoles derived class. Each Attribute Authority 843 864 # should define it's own roles class derived from AAUserRoles to … … 882 903 with this AA. It returns an empty dictionary if role isn't 883 904 recognised""" 884 905 906 log.debug('Calling getTrustedHostInfo with role = "%s" ...' % role) 907 885 908 if not self.__mapConfig or not self.__localRole2RemoteRole: 886 909 # This Attribute Authority has no trusted hosts … … 966 989 967 990 991 #_____________________________________________________________________________ 968 992 from logging.handlers import RotatingFileHandler 969 993 970 994 #_________________________________________________________________________ 971 995 # Inherit directly from Logger 972 996 class AttCertLog(logging.getLoggerClass(), object): 997 """Log each Attribute Certificate issued using a rotating file handler 998 so that the number of files held can be managed""" 973 999 974 1000 def __init__(self, attCertFilePath, backUpCnt=1024): 975 1001 """Set up a rotating file handler to log ACs issued. 1002 @type attCertFilePath: string 1003 @param attCertFilePath: set where to store ACs. Set from AttAuthority 1004 properties file. 1005 1006 @type backUpCnt: int 1007 @keyword backUpCnt: set the number of files to store before rotating 1008 and overwriting old files.""" 1009 976 1010 # Inherit from Logger class 977 1011 super(AttCertLog, self).__init__(name='', level=logging.INFO) 978 1012 979 # Set a format for messages 1013 # Set a format for messages so that only the content of the AC is 1014 # logged, nothing else. 980 1015 formatter = logging.Formatter(fmt="", datefmt="") 981 1016 982 if attCertFilePath: 983 fileLog = RotatingFileHandler(attCertFilePath, 984 maxBytes=1, 985 backupCount=backUpCnt) 986 fileLog.setFormatter(formatter) 987 self.addHandler(fileLog) 1017 # maxBytes is set to one so that only one AC will be written before 1018 # rotation to the next file 1019 fileLog = RotatingFileHandler(attCertFilePath, 1020 maxBytes=1, 1021 backupCount=backUpCnt) 1022 fileLog.setFormatter(formatter) 1023 self.addHandler(fileLog) 988 1024 989 1025 #_____________________________________________________________________________ -
TI12-security/trunk/python/ndg.security.server/ndg/security/server/SessionMgr/__init__.py
r2866 r2902 59 59 import tempfile 60 60 import urllib 61 import logging 62 log = logging.getLogger(__name__) 61 63 62 64 #_____________________________________________________________________________ 63 class UserSessionError(Exception): 65 class _SessionMgrException(Exception): 66 """Base class for all Exceptions in this module. Overrides Exception to 67 enable writing to the log""" 68 def __init__(self, msg): 69 log.error(msg) 70 super(_SessionMgrException, self).__init__(msg) 71 72 #_____________________________________________________________________________ 73 class UserSessionError(_SessionMgrException): 64 74 """Exception handling for NDG User Session class.""" 65 75 … … 88 98 """Initialise UserSession with args and keywords to CredWallet""" 89 99 100 log.debug("UserSession.__init__ ...") 90 101 91 102 # Each User Session has one or more browser sessions associated with … … 95 106 self.__credWallet = CredWallet(*credWalletArgs, **credWalletKeys) 96 107 108 log.info("Created a session with ID = %s" % self.__sessIDlist[-1]) 97 109 98 110 #_________________________________________________________________________ … … 263 275 @rtype: SessionCookie / string depending on asString keyword 264 276 @return: session cookie""" 277 278 log.debug("UserSession.createCookie ...") 265 279 266 280 if sessID is None: … … 294 308 295 309 #_____________________________________________________________________________ 296 class SessionMgrError( Exception):310 class SessionMgrError(_SessionMgrException): 297 311 """Exception handling for NDG Session Manager class.""" 298 312 … … 364 378 tags in the properties file""" 365 379 380 log.info("Initialising service ...") 381 366 382 # Base class initialisation 367 383 dict.__init__(self) … … 427 443 """ 428 444 445 log.debug("Loading Credential Repository interface ...") 446 429 447 # Don't bother if object has already been created. Use Force=True 430 448 # to override and force reload … … 479 497 (credReposClass, CredRepos) 480 498 481 482 499 # Instantiate custom class 483 500 try: … … 490 507 "Error instantiating Credential Repository interface: " + str(e) 491 508 509 log.info(\ 510 'Instantiated "%s" class from Credential Repository module: "%s" file path %s' % \ 511 (self.__prop['credReposProp']['className'], 512 self.__prop['credReposProp']['modName'], 513 self.__prop['credReposProp']['modFilePath'] or "from PYTHONPATH")) 514 492 515 493 516 #_________________________________________________________________________ … … 547 570 val = os.environ['NDGSEC_SM_PROPFILEPATH'] 548 571 572 log.debug(\ 573 'Set properties file path "%s" from "NDGSEC_SM_PROPFILEPATH"'\ 574 % val) 575 549 576 elif 'NDGSEC_DIR' in os.environ: 550 577 val = os.path.join(os.environ['NDGSEC_DIR'], 551 578 self.__class__.__confDir, 552 579 self.__class__.__propFileName) 580 581 log.debug('Set properties file path %s from "NDGSEC_DIR"'%val) 553 582 else: 554 583 raise AttributeError, 'Unable to set default Session ' + \ … … 556 585 '"NDGSEC_SM_PROPFILEPATH" or "NDGSEC_DIR" environment ' + \ 557 586 'variables are set' 558 587 else: 588 log.debug('Set properties file path %s from user input' % val) 589 559 590 if not isinstance(val, basestring): 560 591 raise AttributeError, "Input Properties file path " + \ … … 577 608 """ 578 609 610 log.debug("Reading properties file ...") 611 579 612 if not propElem: 580 613 try: … … 652 685 if errMsg: 653 686 raise SessionMgrError, errMsg + " for properties file" 654 687 688 log.info('Loaded properties from "%s"' % self.__propFilePath) 689 655 690 656 691 #_________________________________________________________________________ … … 658 693 """Update existing properties from an input dictionary 659 694 Check input keys are valid names""" 695 696 log.debug("Calling SessionMgr.setProperties with kw = %s" % prop) 660 697 661 698 for key in prop.keys(): … … 706 743 unencrypted as keywords username 707 744 and pPhrase respectively.""" 708 745 746 log.debug("Calling SessionMgr.addUser ...") 747 709 748 # Ask CA to sign certificate 710 749 711 750 # Add new user certificate to MyProxy Repository 712 751 self.__myPx.store(username, 713 certFile,714 keyFile,715 ownerCertFile=None,716 ownerKeyFile=None,717 ownerPassphrase=None,718 lifetime=None,719 force=True)752 certFile, 753 keyFile, 754 ownerCertFile=None, 755 ownerKeyFile=None, 756 ownerPassphrase=None, 757 lifetime=None, 758 force=True) 720 759 721 760 return userDN … … 761 800 """ 762 801 802 log.debug("Calling SessionMgr.connect ...") 803 763 804 # Initialise proxy cert to be returned 764 805 proxyCert = None … … 769 810 userSess = self.__connect2UserSession(sessID=sessID) 770 811 proxyCert = userSess.credWallet.proxyCertTxt 771 812 772 813 elif proxyCert is not None: 773 814 # Connect to an existing session identified by a proxy … … 775 816 userSess = self.__connect2UserSession(proxyCert=proxyCert) 776 817 sessID = userSess.latestSessID 818 777 819 else: 778 820 # Create a fresh session … … 806 848 @param proxy: tuple containing proxy certificate, private key 807 849 and issuing certificate.""" 850 851 log.debug("Calling SessionMgr.__createUserSession ...") 808 852 809 853 # Check for an existing session for the same user … … 850 894 # Add new session to list 851 895 self.__sessDict[newSessID] = userSess 852 896 853 897 # Return new session 854 898 return userSess … … 870 914 an existing session.""" 871 915 916 log.debug("Calling SessionMgr.__connect2UserSession ...") 872 917 873 918 # Look for a session corresponding to this ID … … 881 926 raise SessionNotFound, \ 882 927 "No user session found matching input session ID" 928 929 log.info("Connecting to session user DN = %s using ID = %s" % \ 930 (userSess.credWallet.proxyCert.dn, sessID)) 883 931 884 932 elif isinstance(userCert, basestring): … … 897 945 raise SessionNotFound, \ 898 946 "No user session found matching input proxy certificate" 947 948 log.info("Connecting to session ID = %s using cert, DN = %s" % \ 949 (userSess.sessIDlist, userDN)) 899 950 900 951 elif isinstance(userCert, X509Cert): … … 913 964 raise SessionNotFound, \ 914 965 "No user session found matching input proxy certificate" 966 967 log.info("Connecting to session ID = %s using cert, DN = %s" % \ 968 (userSess.sessIDlist, userDN)) 915 969 else: 916 970 raise SessionMgrError,\ … … 955 1009 @keyword userSess: user session object to be deleted 956 1010 """ 957 1011 1012 log.debug("Calling SessionMgr.deleteUserSession ...") 1013 958 1014 # Look for a session corresponding to the session ID/proxy cert. 959 1015 if sessID: … … 1005 1061 raise SessionMgrError, "Deleting user session: %s" % e 1006 1062 1063 log.info("Deleted user session: user DN = %s, sessID = %s" % \ 1064 (userDN, userSess.sessIDlist)) 1007 1065 1008 1066 #_________________________________________________________________________ … … 1034 1092 """ 1035 1093 1094 log.debug("Calling SessionMgr.getAttCert ...") 1095 1036 1096 # Web browser client input will include the encrypted address of the 1037 1097 # Session Manager where the user's session is held. … … 1091 1151 @type **kw: dict 1092 1152 @param **kw: same keywords which apply to getAttCert call""" 1153 1154 1155 log.info('SessionMgr.__redirectAttCertReq - redirecting to "%s"' % \ 1156 userSessMgrURI) 1157 1093 1158 1094 1159 # Instantiate WS proxy for remote session manager … … 1121 1186 """Remove expired Attribute Certificates from the Credential 1122 1187 Repository""" 1188 log.debug("Calling SessionMgr.auditCredRepos ...") 1123 1189 self.__credRepos.auditCredentials() -
TI12-security/trunk/python/ndg.security.server/ndg/security/server/conf/attAuthorityLog.cfg
r2899 r2902 37 37 level=NOTSET 38 38 formatter=form01 39 args=(os.path.join(os.environ['NDGSEC_DIR'], 'log', 'att-authority.log'), 'a', 10000 , 10)39 args=(os.path.join(os.environ['NDGSEC_DIR'], 'log', 'att-authority.log'), 'a', 100000, 10) 40 40 41 41 # System logging -
TI12-security/trunk/python/ndg.security.server/ndg/security/server/conf/sessionMgrLog.cfg
r2899 r2902 37 37 level=NOTSET 38 38 formatter=form01 39 args=(os.path.join(os.environ['NDGSEC_DIR'], 'log', 'session-mgr.log'), 'a', 10000 , 10)39 args=(os.path.join(os.environ['NDGSEC_DIR'], 'log', 'session-mgr.log'), 'a', 100000, 10) 40 40 41 41 # System logging -
TI12-security/trunk/python/ndg.security.test/ndg/security/test/SessionMgr/sessionMgrClientTest.cfg
r2884 r2902 64 64 65 65 [test6GetAttCertUsingSessID] 66 aaURI = http s://localhost:5000/AttributeAuthority66 aaURI = http://localhost:5000/AttributeAuthority 67 67 acOutFilePath = ac-out.xml 68 68 … … 79 79 80 80 [test7GetAttCertUsingProxyCert] 81 aaURI = http s://localhost:5000/AttributeAuthority81 aaURI = http://localhost:5000/AttributeAuthority 82 82 #aaURI = http://glue.badc.rl.ac.uk/services/ndg/security/AttributeAuthority
Note: See TracChangeset
for help on using the changeset viewer.