code: @Override
      public void doSessionCreated(SessionManagementBean sessionBean) throws Exception {
          SessionMXBean sessionMxBean = managementServiceHandler.getSessionMXBean(sessionBean.getId());
  
          Map<String, String> userPrincipals = sessionBean.getUserPrincipalMap();
  
          // Send a notification for the principals for the logged-in session.
          if (userPrincipals != null) {
              Map<String, Map<String, String>> userData = new HashMap<>();
              userData.put(sessionMxBean.getObjectName().toString(), userPrincipals);
  
              Notification n2 = new Notification(SESSION_CREATED,
                      sessionMxBean,
                      managementServiceHandler.nextNotificationSequenceNumber(),
                      System.currentTimeMillis(),
                      "Session Credentials Registered");
              n2.setUserData(userData);
              sendNotification(n2);
          }
      }
docs: All of the following are expected to be OFF any session's IO thread.