docs: protected IPerson createPersonForRequest(HttpServletRequest request) {
  
          /*
           * Is there an an identity specified by OIDC Id token?
           */
  
          final Jws<Claims> claims = idTokenFactory.getUserInfo(request);
          if (claims != null) {
              final String username = claims.getBody().getSubject();
              logger.debug("Found OIDC Id token for username='{}'", username);
              final IPerson rslt = new PersonImpl();
              rslt.setAttribute(IPerson.USERNAME, username);
              rslt.setID(userIdentityStore.getPortalUserId(username));
              return rslt;
          }
  
          /*
           * No identity specified;  create a 'guest person.'
           */
  
          // First we need to know the guest username
          String username = PersonFactory.getGuestUsernames().get(0); // First item is the default
  
          // Pluggable strategy for supporting multiple guest users
          for (IGuestUsernameSelector selector : guestUsernameSelectors) {
              final String s = selector.selectGuestUsername(request);
              if (s != null) {
                  username = s;
                  break;
              }
          }
  
          // Sanity check...
          if (!PersonFactory.getGuestUsernames().contains(username)) {
              final String msg =
                      "The specified guest username is not in the configured list:  " + username;
              throw new IllegalStateException(msg);
          }
  
          Integer guestUserId = guestUserIds.get(username);
          if (guestUserId == null) {
              // Not yet looked up
              loadGuestUserId(username, guestUserIds);
              guestUserId = guestUserIds.get(username);
          }
  
          final IPerson rslt = PersonFactory.createPerson();
          rslt.setAttribute(IPerson.USERNAME, username);
          rslt.setID(guestUserId);
          rslt.setSecurityContext(initialSecurityContextFactory.getInitialContext());
  
          return rslt;
      }