如何使用wsadmin获取WAS 7上的Authentification Alias属性

时间:2014-10-14 10:51:04

标签: websphere datasource jython wsadmin

我在Jython中创建了一个脚本,它从WAS 7中提取数据源的一些属性。其中一个属性是Authentification Alias。我知道密码是加密的,但是项目有一个半连续的目的,因此重点是重新获取用户名和密码,而不是破解。

如何提取Authentification Alias的属性,我的意思是用户名和密码?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。 :)让我们从头开始。

您必须找到 security.xml (WAS_HOME / AppServer / profiles / Profile_Name / config / cells / Cell_Name /security.xml)文件并在其中搜索身份验证别名。

将包含Auth Alias的行保留在名为 Line 的变量中,然后提取用户名,密码和说明。

之后,您必须使用 XOR 算法解密密码,并将变量作为列表写入文件中。 例如: AuthDataAlias = [\ ['AuthAlias','username','password','description']]

代码:

import sys, java, java.io, java.lang, base64, binascii

resFile="resources.res"

def search ( alias, file ):
    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')]
    password = Line[Line.find('password=')+15:Line.find('\" description')]

    password = decrypt(password)
    description = Line[Line.find('description=')+13:Line.find('\"/>')]

    write ( AuthAlias, user, password, description, resFile)

def write ( alias, user, password, desc, file ):
    objItemFileOutputStream = java.io.FileOutputStream(file, 1)     #apend la sfirsit fisier
    objItemFileOutputStream.write('\n')
    AuthList = "AuthDataAlias = [\\\n[\'"+alias+"\', \'"+user+"\', \'"+password+"\', \'"+desc+"\'] ]" 
    objItemFileOutputStream.write(AuthList)


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
search ( AuthAlias, securityFile )

如果有人对此问题感到困惑,请随时发布您的问题,我会尽快回答。