private static String cleanupUserInfo(String userinfo) {
		if (StringUtils.isBlank(userinfo)) {
			return null;
		}
		userinfo = userinfo.trim();
		int pwdSep = userinfo.indexOf(':');
		if (pwdSep == 0) {
			throw new IllegalArgumentException("Invalid userinfo specified");
		}
		else if (pwdSep > 0 && (userinfo.length() - pwdSep) == 0) {
			throw new IllegalArgumentException("Invalid userinfo specified");
		}
		return userinfo;
	}
Construct a new {@link BSimServerInfo} object from a suitable database URL
(i.e., {@code postgresql:}, {@code https:}, {@code elastic:}, {@code file:}).

@param url supported BSim database URL.  For non-file URLs, the hostname or 
address may be preceeded by a DB username (e.g., postgresql://user@host:port/dbname
@throws IllegalArgumentException if unsupported URL protocol specified
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/BSimServerInfo.java