AuthenticationInformationController

The second part of the URI must be authinfo to call the AuthenticationInformationController. This controller can be used to get attributes of authentication information objects.

inquire

Get information about one or more authentication information objects. This action executes the MQCMD_INQUIRE_AUTH_INFO pcf command. On success, the returned JSON object will have a data array, on failure an error object.

URL Parameters

/api/authinfo/inquire/<QueueManager>/<AuthInfoName>

QueueManager

The name of the queuemanager. This parameter is required!

AuthInfoName

The name of an authentication information object. When this parameter is used, the AuthInfoName query parameter is ignored. This parameter is optional.

Query Parameters

AuthInfoAttrs

With the AuthInfoAttrs parameter you can specify which attributes must be returned from the PCF command. Multiple occurences of this parameter are possible. The value must be a (case-sensitive) valid attribute name.

Attrs is a synonym for AuthInfoAttrs

AuthInfoName

The name of an authentication information object. When an authentication information object name is passed as part of the URL, this query parameter will be ignored. When no AuthInfoName parameter is passed, * wil be used as default.

AuthInfoType

Only return authentication information objects of the given type. Possible values are CRL LDAP, OCSPor All. Default is All. The value is case-sensitive.

CommandScope

Specifies how the command is executed when the queue manager is a member of a queue-sharing group. This parameter applies to z/OS only.

ExcludeSystem

When value is true, all authentication information objects starting with SYSTEM. will be discarded. This parameter is optional. By default the value is set to false.

Filter

Speficies which filter to use: I means Integerfilter, S means Stringfilter. FilterParam and FilterValue are required to create the filter. When a filter can’t be build because of too little information, it will be silently discarded.

FilterOp

The operator that is being used to evaluate whether the parameter satisfies the filter-value. The default is EQ.

The following values are allowed:

A Stringfilter can use some additional operators:

FilterParam

The name of the parameter to filter on. The names are based on the names used in the WebSphere MQ information center.

FilterValue

The value to use for filtering. When a string is passed for an Integerfilter, a WebSphere MQ constant is assumed.

QSGDisposition

Disposition of the object within the group. Possible values are Live, Copy, Group, QMgr, Private or All. This parameter applies to z/OS only.

Example

/api/authinfo/inquire/PIGEON
/api/authinfo/inquire/PIGEON/SYSTEM*

This sample is a PHP script that inquires all SYSTEM authentication information objects from the PIGEON queuemanager:

<?php
	/*
	 * Inquire all SYSTEM authentication information objects from queuemanager 
	 * PIGEON. MQWeb runs on localhost and is listening on port 8081. 
	 */
	$url = "http://localhost:8081/api/authinfo/inquire/PIGEON/SYSTEM*";

	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

	if ( ($response = curl_exec($curl)) === false )	{
		$err = curl_error($curl);
		echo "An HTTP error occurred while inquiring authentication information: $err\n";
	}
	else {
		$json = json_decode($response);
		if ( isset($json->error) ) {
			echo "An MQ error occurred while inquiring authentication information objects.\n";
			echo "Reason Code: {$json->error->reason->code} - {$json->error->reason->desc}\n";
		}
		else {
			if ( isset($json->data) && count($json->data) > 0 ) {
				foreach($json->data as $authinfo)
				{
					echo $authinfo->AuthInfoName->value;
					echo "\n";
				}
			}
			else
			{
				echo "No authentication information objects found\n";
			}
		}
	}

JSON Object

When using an application/json POST request you can post a JSON object with names like the query parameters.

All URL parameters and query parameters are ignored except for the URL parameter for the name of the queuemanager.

{
  'AuthInfoName' : 'SYSTEM*',
  'AuthInfoAttrs' : [
    'AuthInfoName'
  ]
}

There are some differences between query parameters and a JSON object:

An IntegerFilterCommand can’t be used together with a StringFilterCommand

This is a Perl example that inquires the authentication information objects with a name starting with SYSTEM.

#!/usr/bin/perl
use strict;
use warnings;
use feature qw(say);

use JSON;
use LWP::UserAgent;
use HTTP::Request::Common;

# This sample will show all SYSTEM authentication information objects.

my $qmgr = shift;
die("Please pass me the name of a queuemanager as argument") 
	unless defined($qmgr);

my $json = JSON->new;

my %input = ( 
	'AuthInfoName' => 'SYSTEM*'
);
my $content = $json->encode(\%input);    

my $ua = LWP::UserAgent->new;
my $req = POST 'http://localhost:8081/api/authinfo/inquire/' . $qmgr;
$req->header(
	'Content-Type' => 'application/json',
	'Content-length' => length($content)
);
$req->content($content);

my $res = $ua->request($req);
die $res->status_line unless $res->is_success;
	
my $mqweb = $json->decode($res->content());
if ( exists($mqweb->{error}) ) {
	say 'An MQ error occurred while inquiring queues.';
	say 'Reason Code: '
		, $mqweb->{error}->{reason}->{code}
		, ' - '
		, $mqweb->{error}->{reason}->{desc};
}
else {
	foreach my $authinfo(@{$mqweb->{data}}) {
		say $authinfo->{AuthInfoName}->{value};
	}
}