docs: private void configureSecurityContextChain(
              final Map<String, String> principals,
              final Map<String, String> credentials,
              final ISecurityContext securityContext,
              final String baseContextName)
              throws PortalSecurityException {
          this.setContextParameters(principals, credentials, baseContextName, securityContext);
  
          // load principals and credentials for the subContexts
          for (final Enumeration<String> subCtxNames = securityContext.getSubContextNames();
                  subCtxNames.hasMoreElements(); ) {
              final String fullSubCtxName = subCtxNames.nextElement();
  
              // Strip off the base of the name
              String localSubCtxName = fullSubCtxName;
              if (fullSubCtxName.startsWith(baseContextName + ".")) {
                  localSubCtxName = localSubCtxName.substring(baseContextName.length() + 1);
              }
  
              final ISecurityContext sc = securityContext.getSubContext(localSubCtxName);
  
              this.configureSecurityContextChain(principals, credentials, sc, fullSubCtxName);
          }
      }