#!/usr/bin/perl use strict; use warnings; =head1 NAME login_check.pl =head1 SYNOPSIS # set env IT_USERNAME, IT_PASSWORD, IT_API_URL login_check.pl =head1 DESCRIPTION Checks the environment variables IT_USERNAME and IT_PASSWORD against the environment at IT_API_URL for successful authentication. Use this to test your login credentials. =cut use Getopt::Long; use Pod::Usage; my ( $help, $man ); GetOptions( 'man' => \$man, 'help' => \$help, ); pod2usage( 1 ) if $help; pod2usage( -verbose => 2 ) if $man; pod2usage( 2 ) unless $ENV{IT_USERNAME} && $ENV{IT_PASSWORD} && $ENV{IT_API_URL}; use WebService::iThenticate::Client; use Data::Dumper; my %args = ( username => $ENV{IT_USERNAME}, password => $ENV{IT_PASSWORD}, url => $ENV{IT_API_URL}, ); my $client = WebService::iThenticate::Client->new( \%args ); my $response; eval { $response = $client->login }; # first stage error checking - look for an exception die "Error: $@\n" if $@; # second stage error checking - look for errors in errors field if ( $response->errors ) { die 'Login error: ' . Dumper( $response->errors ) . "\n"; } elsif ( my @messages = $response->messages ) { # third stage - messages on login means there were problems die 'login error: ' . Dumper( $response->messages ); } else { print "Login successful\n"; }