docs: private void checkDestinationAccess(DestinationHandler destination,
                                          SecurityContext secContext) throws SIDiscriminatorSyntaxException, SINotAuthorizedException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(
                          tc,
                          "checkDestinationAccess",
                          new Object[] { destination, secContext });
  
          // Check authority to access the destination
          if (!destination.
                          checkDestinationAccess(secContext,
                                                 OperationType.SEND))
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "checkDestinationAccess", "not authorized to produce to this destination");
  
              // Get the username
              String userName = secContext.getUserName(true);
  
              // Build the message for the Exception and the Notification
              String nlsMessage =
                              nls_cwsik.getFormattedMessage("DELIVERY_ERROR_SIRC_18", // USER_NOT_AUTH_SEND_ERROR_CWSIP0306
                                                            new Object[] { destination.getName(),
                                                                          userName },
                                                            null);
  
              // Fire a Notification if Eventing is enabled
              _messageProcessor.
                              getAccessChecker().
                              fireDestinationAccessNotAuthorizedEvent(destination.getName(),
                                                                      userName,
                                                                      OperationType.SEND,
                                                                      nlsMessage);
  
              // Thrown if user denied access to destination
              SIMPNotAuthorizedException e = new SIMPNotAuthorizedException(nlsMessage);
  
              e.setExceptionReason(SIRCConstants.SIRC0018_USER_NOT_AUTH_SEND_ERROR);
              e.setExceptionInserts(new String[] { destination.getName(),
                                                  secContext.getUserName(true) });
              throw e;
          }
  
          // Check authority to produce to discriminator
          if (!destination.
                          checkDiscriminatorAccess(secContext,
                                                   OperationType.SEND))
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "checkDestinationAccess", "not authorized to produce to this discriminator");
  
              // Write an audit record if access is denied
              SibTr.audit(tc, nls_cwsik.getFormattedMessage(
                                                            "DELIVERY_ERROR_SIRC_20", // USER_NOT_AUTH_SEND_ERROR_CWSIP0308
                                                            new Object[] { destination.getName(),
                                                                          secContext.getDiscriminator(),
                                                                          secContext.getUserName(true) },
                                                            null));
  
              // Thrown if user denied access to discriminator
              SIMPNotAuthorizedException e = new SIMPNotAuthorizedException(
                              nls_cwsik.getFormattedMessage(
                                                            "DELIVERY_ERROR_SIRC_20", // USER_NOT_AUTH_SEND_ERROR_CWSIP0308
                                                            new Object[] { destination.getName(),
                                                                          secContext.getDiscriminator(),
                                                                          secContext.getUserName(true) },
                                                            null));
  
              e.setExceptionReason(SIRCConstants.SIRC0020_USER_NOT_AUTH_SEND_ERROR);
              e.setExceptionInserts(new String[] { destination.getName(),
                                                  secContext.getDiscriminator(),
                                                  secContext.getUserName(true) });
              throw e;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "checkDestinationAccess");
      }