Skip to content

Commit 5f07bf4

Browse files
committed
feat (ProxyDB): propagate proxy strength upon download
1 parent 381a593 commit 5f07bf4

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

src/DIRAC/FrameworkSystem/DB/ProxyDB.py

+18-7
Original file line numberDiff line numberDiff line change
@@ -535,13 +535,20 @@ def getProxyStrength(self, userDN, userGroup=None, vomsAttr=None):
535535
:param vomsAttr: VOMS attr we plan to add on the proxy
536536
"""
537537
# Look in the cache
538-
retVal = self.__getPemAndTimeLeft(userDN, userGroup, vomsAttr=vomsAttr)
538+
retVal = Registry.getProxyProvidersForDN(userDN)
539+
539540
if retVal["OK"]:
540-
pemData = retVal["Value"][0]
541-
chain = X509Chain()
542-
retVal = chain.loadProxyFromString(pemData)
543-
if retVal["OK"]:
544-
return chain.getStrength()
541+
providers = retVal["Value"]
542+
providers.append("Certificate")
543+
for proxyProvider in providers:
544+
545+
retVal = self.__getPemAndTimeLeft(userDN, userGroup, vomsAttr=vomsAttr, proxyProvider=proxyProvider)
546+
if retVal["OK"]:
547+
pemData = retVal["Value"][0]
548+
chain = X509Chain()
549+
retVal = chain.loadProxyFromString(pemData)
550+
if retVal["OK"]:
551+
return chain.getStrength()
545552

546553
return retVal
547554

@@ -589,7 +596,11 @@ def __getPemAndTimeLeft(self, userDN, userGroup=None, vomsAttr=None, proxyProvid
589596
result = chain.loadProxyFromString(record[0])
590597
if not result["OK"]:
591598
return result
592-
result = chain.generateProxyToString(record[1], diracGroup=userGroup, rfc=True)
599+
result = chain.getStrength()
600+
if not result["OK"]:
601+
return result
602+
strength = result["Value"]
603+
result = chain.generateProxyToString(record[1], diracGroup=userGroup, strength=strength, rfc=True)
593604
if not result["OK"]:
594605
return result
595606
return S_OK((result["Value"], record[1]))

0 commit comments

Comments
 (0)