Restrictions for Client/Server Security Drivers

Some restrictions apply to the client/server security driver.

  • The security driver is supported for all platforms that are supported by Uniface.
  • User name and password validation is only relevant on the server machine that runs the Uniface Router.
  • Where the security driver provides no implementation for a given aspect, or the option is not supported, the default Uniface behavior is used, which is not to encode or decode.
  • For encoding, only a single security driver implementation is supported for all cooperating applications (that is, all clients using the Uniface Router, the Uniface Router itself, and the servers). A single driver must be provided to them all, or to none.

    The same encoding must be implemented for all the platforms concerned. Username and password functionality need only be provided in the Uniface Router’s security driver and affects only that Uniface Router.

  • If the $IOPRINT setting is greater than zero, all applications that do support the security driver will print an initialization message as to whether or not a security driver is present and what functionality it provides.
  • The Uniface Router Monitor and the Uniface Debugger do not support the security driver. They continue to work normally, regardless of whether a security driver is defined and or in use by the Uniface Router. However, any usernames and passwords contained in their messages will not be encoded.
  • The Web Request Dispatcher (WRD) and SOAP Request Dispatcher (SRD) are incompatible with the use of the security driver for encoding and decoding. The Uniface Router may use a security driver for username and password manipulations, but it must not define any encoding of the connect message or of message headers when used with the WRD or SRD.
  • Unicode is supported. Strings are in Uniface internal format, which is UTF-8.
  • The security driver implementation must be thread-safe. In the Uniface Router, it may be called simultaneously by several threads. Each thread initializes the driver, and the data for exchanging information and instructing the security driver is local to the thread.