This section describes the user exits available with Natural Security. It contains information on:
The following logon-related user exits are available:
Note:
The user exit LOGONEX4
is not related to Natural
Security's regular logon handling, but is only relevant in in conjunction with
a logon of an RPC client to a Natural RPC server in an RPC environment. It is
described under RPC-Related User
Exit below.
LOGONEX0
, LOGONEX1
, LOGONEX2
,
LOGONEX3
, LOGONEX5
and LOGONSX1
are
Natural subprograms which have to be stored in the library SYSLIB
to be invoked.
The corresponding sources and object modules of these user exits are
available in the library SYSSEC
under the following names:
User Exit in SYSLIB | Sources and Object Modules in SYSSEC |
---|---|
LOGONEX0
|
NOGONEX0
|
LOGONEX1 |
NOGONEX1 |
LOGONEX2 |
NOGONEX2 |
LOGONEX3 |
NOGONEX3 |
LOGONEX4 |
NOGONEX4 |
LOGONEX5 |
NOGONEX5 |
LOGONSX1 |
NOGONSX1 |
You can modify each of the user exits to suit your requirements. To
do so, you make a copy of NOGONEXn
(n
= 0
, 1
,
2
, 3
or 5
), store it under the name
LOGONEXn
, make your adjustments to it,
and then copy it into SYSLIB
.
To ensure that the user exits are always present in
SYSLIB
, Natural Security proceeds as follows: The installation
procedure, after loading all modules into their respective libraries, checks
whether there already is a subprogram
LOGONEXn
contained in
SYSLIB
. If there is, it will be left untouched. If there is not,
the object module of NOGONEXn
will
automatically be copied from SYSSEC
to SYSLIB
and
stored there under the name LOGONEXn
.
At the same time, this ensures that your customized versions of the user exits
are not accidentally overwritten by an installation procedure.
The above also applies to the user exit
LOGONSX1/NOGONSX1
.
If the option Password phrases active in
User Preset
Values is set to "Y" or "A", LOGONEX0
(instead of LOGONEX1
) is invoked by the Natural Security logon
program.
Unless modified, LOGONEX0
invokes the Natural
Security logon screen (map LOGONMX1
or dialog box
GLOGONMX1
; see Logon Screen / Logon Dialog
Box). By modifying LOGONEX0
you can invoke
your own logon screens.
LOGONEX0
supports the use of password
phrases, that is, passwords which are longer than 8 characters.
If the option Password phrases active in
User Preset
Values is set to "N", LOGONEX1
(instead of
LOGONEX0
) is invoked by the Natural Security logon program.
Unless modified, LOGONEX1
invokes the Natural
Security logon screen (map LOGONM1
or dialog box
GLOGONM1
; see Logon Screen / Logon Dialog
Box). By modifying LOGONEX1
you can invoke
your own logon screens.
LOGONEX1
only supports the use of "regular" passwords
of up to 8 characters.
LOGONEX2
is invoked by the Natural Security logon
program under any of the following conditions:
when #
is entered as the library ID (or is passed
from LOGONEX1
as library ID);
when no library ID has been specified for the logon and neither a default library nor a private library exists which could have been invoked (see also Logon Without Library ID in the section Logging On).
When LOGONEX2
is invoked, the user ID and password
have already been checked and found valid by the logon program. At this point,
the Natural system variable *USER
contains a valid value, which
may be used.
Unless modified, LOGONEX2
consists of nothing but an
END
statement. On return to the logon program, a valid library ID
must be passed to the logon program, otherwise the logon will be rejected.
Moreover, it is possible to return one of possibly several IDs using which a
user is linked to a library.
As the user ID/password check has already established the validity
of the user-specific logon data when LOGONEX2
is invoked,
LOGONEX2
may be used to implement additional user-specific
procedures or to request user-specific data. For example, the application
programming interface
SECNOTE
may be invoked to read user security notes.
When the logon program invokes LOGONEX1
or
LOGONEX2
, it passes the parameters PUSERDUMMY1
and
PUSERDUMMY2
to the subprograms. Both parameters are provided for
your use; their format/length is A8. You may assign values to these parameters
in LOGONEX1
and subsequently use these values in
LOGONEX2
, as they are passed without modification from one
subprogram to the other.
LOGONEX3
is invoked by the Natural Security logon
program under any of the following conditions:
if there are mailboxes to be displayed;
if at least one of the parameters PUSERDUMMY1
or
PUSERDUMMY2
, passed from LOGONEX1
or
LOGONEX2
respectively, is not blank.
LOGONEX3
is invoked immediately after a successful
logon and before control is passed from the logon program to the library
invoked; when LOGONEX3
is invoked, logon processing is completed
except for the display of the mailboxes.
If LOGONEX3
is left unmodified, it performs the
subprogram calls necessary for the display of mailboxes.
You may modify LOGONEX3
for one of the following
purposes:
to suppress the display of mailboxes;
to have non-library-specific processing to be carried out immediately after a successful logon but before any library-specific transactions are executed.
LOGONEX5
is invoked by the Natural Security logon
program whenever the system command LOGOFF
is
executed.
This user exit is only available on Linux and Windows.
If the Authentication Type is set to "LDAP"
in the LDAP security
profile, LOGONSX1
- instead of LOGONEX1
-
is invoked by the Natural Security logon program.
Unless modified, LOGONSX1
invokes the Natural
Security logon screen (map LOGONSM1
or dialog box
GLOGONS1
; see Logon Screen / Logon Dialog
Box).
By modifying LOGONSX1
you can invoke your own logon
screens.
The user exit LOGONEX4
is a Natural subprogram which is
only used in an RPC environment. It is invoked by the Natural Security RPC
logon program after a successful logon of an RPC client to a Natural RPC
server.
Note:
The logon of an RPC client to a Natural RPC server does
not cause any of the user exits described under
Logon-Related User
Exits (see above) to be invoked.
Invoking LOGONEX4
is always the last task performed by
the logon program when all other logon processing has been completed, and
before an RPC service is performed. At this time, the user ID and password have
already been checked and found valid by the logon program, and the Natural
system variables *USER
and *LIBRARY-ID
contain valid
values, which may be used.
In conversational mode, the user exit is invoked when the conversation is started.
The input parameters for the user exit are the library ID and subprogram name. The output parameter of the user exit is a return code; this may be used to terminate the RPC logon with a non-zero return code. If this is the case, Natural issues error NAT1696 with reason code 10.
A sample source module for LOGONEX4
is available in the
library SYSSEC
under the name NOGONEX4
. To invoke the
user exit, its object module has to be stored under the name
LOGONEX4
in the library SYSTEM
on the FNAT system
file assigned to the RPC server. After copying it to this library, the RPC
server has to be restarted.
Once the user exit has been invoked, it remains active until the end of the RPC server session.
To deactivate the user exit, you have to first terminate the RPC
server, and then remove the object LOGONEX4
from the library
SYSTEM
.
Do not remove LOGONEX4
while an RPC server
session using that FNAT system file is still active, because this would make
the RPC server session inoperable (error NAT0082 would be issued at the next
logon to the RPC server).
The library SYSSEC
contains several other user exits:
User Exit | Function |
---|---|
NSCXXEX1
|
where
The object-type-specific
|
NSCUSEX2 |
This user exit is invoked when you use the function
Edit Group Members and
|
NSCXXEX3
|
where
The object-type-specific
The sources of
|
The parameters of these user exits are not modifiable.
For details, see the source codes of the user exits themselves.