/** * Determine if this rule matches the given URI. * * @param uri the URI to test * @return {@code true} if the rule matches, {@code false} otherwise */ public final boolean matches(URI uri) { return matches(uri, null, null); }
/** * Determine if this rule matches the given URI, and type. * * @param uri the URI to test * @param abstractType the abstract type of the connection (may be {@code null}) * @param abstractTypeAuthority the authority name of the abstract type (may be {@code null}) * @return {@code true} if the rule matches, {@code false} otherwise */ public boolean matches(URI uri, final String abstractType, final String abstractTypeAuthority) { return parent.matches(uri, abstractType, abstractTypeAuthority); }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { return uri.getPort() == port && super.matches(uri, abstractType, abstractTypeAuthority); }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { return type.equals(abstractType) && super.matches(uri, abstractType, abstractTypeAuthority); }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { return authority.equals(abstractTypeAuthority) && super.matches(uri, abstractType, abstractTypeAuthority); }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { String scheme = uri.getScheme(); return scheme != null && scheme.equals(protoName) && super.matches(uri, abstractType, abstractTypeAuthority); }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { String userInfo = URIUtil.getUserFromURI(uri); return userInfo == null && super.matches(uri, abstractType, abstractTypeAuthority); }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { String userInfo = URIUtil.getUserFromURI(uri); return userInfo != null && userInfo.equals(userSpec) && super.matches(uri, abstractType, abstractTypeAuthority); }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { return uri.isAbsolute() && prefixes(uri.getPath()) && super.matches(uri, abstractType, abstractTypeAuthority); }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { if (! uri.isOpaque()) return false; String scheme = uri.getScheme(); String name; if (scheme.equals("domain")) { // special parsing rules for security domains String ssp = uri.getSchemeSpecificPart(); int idx = ssp.indexOf('@'); if (idx != -1) { name = ssp.substring(idx + 1, ssp.length()); } else { name = ssp; } } else { name = uri.getSchemeSpecificPart(); } return name.equals(this.name) && super.matches(uri, abstractType, abstractTypeAuthority); }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { String host = uri.getHost(); if (host == null) { return false; } final String canonHost = host.toLowerCase(Locale.ROOT); if (suffixMatch) { if (canonHost.equals(hostSpec)) { return super.matches(uri, abstractType, abstractTypeAuthority); } if (canonHost.endsWith(hostSpec)) { assert canonHost.length() > hostSpec.length(); // because otherwise it would be equal, which is tested above return canonHost.codePointBefore(canonHost.length() - hostSpec.length()) == '.' && super.matches(uri, abstractType, abstractTypeAuthority); } return false; } else { return canonHost.equals(hostSpec) && super.matches(uri, abstractType, abstractTypeAuthority); } }
RuleNode<AuthenticationConfiguration> authRuleMatching(URI uri, String abstractType, String abstractTypeAuthority) { RuleNode<AuthenticationConfiguration> node = this.authRules; while (node != null) { if (node.getRule().matches(uri, abstractType, abstractTypeAuthority)) return node; node = node.getNext(); } return null; }
RuleNode<SecurityFactory<SSLContext>> sslRuleMatching(URI uri, String abstractType, String abstractTypeAuthority) { RuleNode<SecurityFactory<SSLContext>> node = this.sslRules; while (node != null) { if (node.getRule().matches(uri, abstractType, abstractTypeAuthority)) return node; node = node.getNext(); } return null; }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { String host = uri.getHost(); if (host == null) { return false; } byte[] hostBytes; if (host.startsWith("[") && host.endsWith("]")) { hostBytes = Inet.parseInet6AddressToBytes(host); } else { hostBytes = Inet.parseInet4AddressToBytes(host); // null if not IPv4 } return hostBytes != null && cidrAddress.matches(hostBytes) && super.matches(uri, abstractType, abstractTypeAuthority); }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { return type.equals(abstractType) && super.matches(uri, abstractType, abstractTypeAuthority); }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { String scheme = uri.getScheme(); return scheme != null && scheme.equals(protoName) && super.matches(uri, abstractType, abstractTypeAuthority); }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { String scheme = uri.getScheme(); return scheme != null && scheme.equals(protoName) && super.matches(uri, abstractType, abstractTypeAuthority); }
@Override public boolean matches(final URI uri, final String abstractType, final String abstractTypeAuthority) { String userInfo = URIUtil.getUserFromURI(uri); return userInfo == null && super.matches(uri, abstractType, abstractTypeAuthority); }
RuleNode<AuthenticationConfiguration> authRuleMatching(URI uri, String abstractType, String abstractTypeAuthority) { RuleNode<AuthenticationConfiguration> node = this.authRules; while (node != null) { if (node.getRule().matches(uri, abstractType, abstractTypeAuthority)) return node; node = node.getNext(); } return null; }
RuleNode<AuthenticationConfiguration> authRuleMatching(URI uri, String abstractType, String abstractTypeAuthority) { RuleNode<AuthenticationConfiguration> node = this.authRules; while (node != null) { if (node.getRule().matches(uri, abstractType, abstractTypeAuthority)) return node; node = node.getNext(); } return null; }