简体   繁体   中英

How to get properties of Authentification Alias on WAS 7 using wsadmin

I created a script in Jython which extracts some properties of a Data Source from WAS 7. One of theese properties is the Authentification Alias. I know that the password is crypted, but project has a semididactical purpose so the focus is on retriving the username and password, not to hack something.

How can I extract the properties of the Authentification Alias, i mean the username and the password?

Thanks in advance!

I solved the problem. :) Let's start with the beginning.

You have to find security.xml (WAS_HOME/AppServer/profiles/ Profile_Name /config/cells/ Cell_Name /security.xml) file and search in it the Authentication Alias.

Keep the line that contains the Auth Alias in a variable called Line and then extract the username, password and description.

After that you have to decrypt your password with a XOR algorithm, and write the variables in a file as a list. Ex: AuthDataAlias = [\\ ['AuthAlias', 'username', 'password', 'description'] ]

Code:

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 )

If anyone gets stuck with this issue feel free to post your questions and I will try to answer ASAP.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM