docs: public String chooseServerAlias(String keyType, Principal[] issuers) {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.entry(tc, "chooseServerAlias", new Object[] { keyType, issuers });
  
          Map<String, Object> connectionInfo = JSSEHelper.getInstance().getInboundConnectionInfo();
          String certMappingFile = certMappingKeyManager.getProperty(CertMappingKeyManager.PROTOCOL_HTTPS_CERT_MAPPING_FILE);
          String mappedAlias = null;
          Boolean webContainerInbound = null;
          if (connectionInfo != null)
              webContainerInbound = (Boolean) connectionInfo.get(JSSEHelper.CONNECTION_INFO_IS_WEB_CONTAINER_INBOUND);
  
          if (webContainerInbound != null && webContainerInbound.booleanValue() && certMappingFile != null) {
              mappedAlias = certMappingKeyManager.chooseServerAlias(keyType, issuers, null);
          }
  
          if (mappedAlias == null) {
              if (serverAlias != null && !serverAlias.equals("")) {
                  String[] list = km.getServerAliases(keyType, issuers);
  
                  if (list != null) {
                      boolean found = false;
                      for (int i = 0; i < list.length && !found; i++) {
                          if (serverAlias.equalsIgnoreCase(list[i]))
                              found = true;
  
                      }
  
                      if (found) {
                          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                              Tr.exit(tc, "chooseServerAlias", new Object[] { serverAlias });
  
                          // JCERACFKS and JCECCARACFKS support mixed case, if we see that
                          // type, do not lowercase the alias
                          if (ks.getType() != null
                              && (ks.getType().equals(Constants.KEYSTORE_TYPE_JCERACFKS) || ks.getType().equals(Constants.KEYSTORE_TYPE_JCECCARACFKS) || ks.getType().equals(Constants.KEYSTORE_TYPE_JCEHYBRIDRACFKS))) {
                              return serverAlias;
                          }
                          return serverAlias.toLowerCase();
                      }
                  }
  
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                      Tr.exit(tc, "chooseServerAlias (default)", new Object[] { serverAlias });
                  return serverAlias;
              }
              String alias = km.chooseServerAlias(keyType, issuers, null);
  
              // JCERACFKS and JCECCARACFKS support mixed case, if we see that type, do
              // not lowercase the alias
              if (ks.getType() != null
                  && (!ks.getType().equals(Constants.KEYSTORE_TYPE_JCERACFKS) && !ks.getType().equals(Constants.KEYSTORE_TYPE_JCECCARACFKS) && !ks.getType().equals(Constants.KEYSTORE_TYPE_JCEHYBRIDRACFKS))) {
                  if (alias != null) {
                      alias = alias.toLowerCase();
                  }
              }
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(tc, "chooseServerAlias (from JSSE)", new Object[] { alias });
              return alias;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.exit(tc, "chooseServerAlias", new Object[] { mappedAlias });
          return mappedAlias;
      }