@Override
		public void run() {

			String choicePrompt = null;
			String[] choices = null;
			if (choiceCb != null) {
				choicePrompt = choiceCb.getPrompt();
				choices = choiceCb.getChoices();
			}

			String defaultUserName = null;
			String namePrompt = null;
			if (nameCb != null) {
				namePrompt = nameCb.getPrompt();
				defaultUserName = nameCb.getName();
				if (StringUtils.isBlank(defaultUserName)) {
					defaultUserName = nameCb.getDefaultName();
				}
			}

			if (StringUtils.isBlank(defaultUserName)) {
				defaultUserName = getDefaultUserName();
			}

			PasswordDialog pwdDialog = new PasswordDialog(title, serverType, serverName,
				passCb.getPrompt(), allowUserIDEntry, namePrompt, defaultUserName, choicePrompt,
				choices, getDefaultChoice(), anonymousCb != null);

			if (errorMsg != null) {
				pwdDialog.setErrorText(errorMsg);
			}
			DockingWindowManager winMgr = DockingWindowManager.getActiveInstance();
			Component rootFrame = winMgr != null ? winMgr.getRootFrame() : null;
			DockingWindowManager.showDialog(rootFrame, pwdDialog);
			if (pwdDialog.okWasPressed()) {
				if (anonymousCb != null && pwdDialog.anonymousAccessRequested()) {
					anonymousCb.setAnonymousAccessRequested(true);
				}
				else {
					passCb.setPassword(pwdDialog.getPassword());
					if (nameCb != null && allowUserIDEntry) {
						String username = pwdDialog.getUserID();
						nameCb.setName(username);
						Preferences.setProperty(NAME_PREFERENCE, username);
					}
					if (choiceCb != null) {
						int choice = pwdDialog.getChoice();
						choiceCb.setSelectedIndex(choice);
						Preferences.setProperty(CHOICE_PREFERENCE, Integer.toString(choice));
					}
				}
				okPressed = true;
			}
			pwdDialog.dispose();
		}
Produce minimal URL (i.e., protocol, host and port)
@param url request URL
@return minimal URL
Ghidra/Framework/FileSystem/src/main/java/ghidra/framework/client/DefaultClientAuthenticator.java