我使用以下脚本来检索数据源属性。
try:
for server in AdminConfig.list('Server').splitlines():
serverName = AdminConfig.showAttribute(server, 'name')
serverType = AdminConfig.showAttribute(server, 'serverType')
findIndex = serverName.find('myservers')
if findIndex > 0 and serverType == 'APPLICATION_SERVER':
dsList = AdminConfig.list('DataSource', server).splitlines()
for ds in dsList:
# Get the database details for this data source
dbName = AdminConfig.showAttribute(ds, 'jndiName')
try: propSet = AdminConfig.showAttribute(ds, 'propertySet')
except:
print 'Error getting propertySet:'
else:
propList = AdminConfig.list('J2EEResourceProperty', propSet).splitlines()
for prop in propList:
print AdminConfig.showAttribute(prop, 'name') + '-' + AdminConfig.showAttribute(prop, 'value')
# Get the jaas authentication details for this data source
try: jaasAuthDataSet = AdminConfig.list("JAASAuthData", ds).splitlines()
except:
print 'Error getting Jaas Authentication data'
else:
for jaasAuthData in jaasAuthDataSet:
print AdminConfig.showAttribute(jaasAuthData, "alias")
except AdminException, ex:
print 'Admin Config not available:' + ex
return None
但是在datasource属性集中,我无法获得authdatalias
属性,该属性定义了组件托管的authdata别名。
此外,我尝试使用以下内容获取JAASAuthData
的{{1}},但没有任何结果:
Datasource
我可以使用以下内容检索所有AdminConfig.list("JAASAuthData", ds).splitlines()
的列表:
JAASAuthData
有关如何检索此内容的任何指示都会有所帮助。感谢。
答案 0 :(得分:1)
我有一个问题的解决方案,但这是我创建的一个功能,它适用于我。我的脚本正在 security.xml 中搜索并解密密码。
def search ( alias, file ):
list = []
list.append(alias)
f=open(file)
lines=f.readlines()
for line in lines:
poz = line.find('/'+alias)
if poz > 0:
Line = line
break
user = Line[Line.find('userId=')+8:Line.find('\" password')]
list.append(user)
password = Line[Line.find('password=')+15:Line.find('\" description')]
password = decrypt(password)
list.append(password)
description = Line[Line.find('description=')+13:Line.find('\"/>')]
list.append(description)
authAliasList.append(list)
def decrypt ( word ):
if not len(word) > 1: exit()
word = word.replace(':', '')
value1 = binascii.a2b_base64(word)
value2 = '_' * len(value1)
out = ''
for a, b in zip(value1, value2):
out = ''.join([out, chr(ord(a) ^ ord(b))])
return out
#===============================================
#MAIN
#===============================================
#AuthAlias is the Authentication Alias from Websphere.
#secureFile is the path for you security.xml file
search ( AuthAlias, secureFile )
您将获得具有下一个功能的身份验证别名的名称:
dbConnList = AdminConfig.list('DataSource', scopeID).split(lineSeparator)
if (len(dbConnList) > 0) :
for dbConn in dbConnList:
AuthAlias= AdminConfig.showAttribute(dbConn, "authDataAlias")
该脚本会创建一个AuthAlias属性列表。
authAliasList=[name of AuthAlias, user, password, description]
如果您有任何问题,请告诉我。我在代码中做了一些修改,以便在您的范围内使用,我没有时间对其进行测试。所以我在等你的问题。