Unable to validate The credentials using pysnow

I need to validate if servicenow login credentials are correct or not. I am using pysnow

def validate_conn(self, data):
    instance = data['url']
    user = data['uname']
    password = data['pwd']
    try:
        pysnow.client.Client(instance=instance, host=None, user=user, password='xfgdfgdf', raise_on_empty=None,
                             request_params=None,  session=None)
        print("valid")
    except:
        print("invalid")
    return data['pwd']

In the above code I gave the invalid password so it have to come to the except block but i am getting valid as output. I need to validate if credentials are valid or not

Upvotes: 0

Views: 344

Answers (1)

giles3
giles3

Reputation: 487

The ServiceNow Web Services API does not provide a mechanism to validate credentials. One way to validate credentials from a Web Services client is to attempt to read a record that you know exists. One record that must exist is your own user record from sys_user.

The following code attempts to read your own user record from sys_user. If you are unable to read this record, then something must be wrong.

try:
    client = pysnow.Client(instance=instance, user=user, password=password)
    response = (client
        .resource(api_path='/table/sys_user')
        .get(query={'user_name': user})
        .one())
    print('credentials are valid')
except:
    print('credentials are not valid')

Upvotes: 1

Related Questions