When trying to construct an LdapURL object with a bad input string (in this 
example the _ in ad_jbs is causing issues), and not using
the backward compatibility flag -Dcom.sun.jndi.ldapURLParsing="legacy" we run 
into the exception below :

import com.sun.jndi.ldap.LdapURL;
String url = "ldap://ad_jbs.ttt.net:389/xyz";; // bad input string containing _
LdapURL ldapUrl = new LdapURL(url);

java --add-opens java.naming/com.sun.jndi.ldap=ALL-UNNAMED LdapParseUrlTest
Exception in thread "main" javax.naming.NamingException: Cannot parse url: 
ldap://ad_jbs.ttt.net:389/xyz [Root exception is 
java.net.MalformedURLException: unsupported authority: ad_jbs.ttt.net:389]
at java.naming/com.sun.jndi.ldap.LdapURL.<init>(LdapURL.java:115)
at LdapParseUrlTest.main(LdapParseUrlTest.java:9)
Caused by: java.net.MalformedURLException: unsupported authority: 
at java.naming/com.sun.jndi.toolkit.url.Uri.parseCompat(Uri.java:367)
at java.naming/com.sun.jndi.toolkit.url.Uri.parse(Uri.java:230)
at java.naming/com.sun.jndi.toolkit.url.Uri.init(Uri.java:174)
at java.naming/com.sun.jndi.ldap.LdapURL.<init>(LdapURL.java:105)

I would like to add the host and port info to the exception (in the example it 
is host:port of URI:null:-1] ) so that it is directly visible that the input 
caused the construction of a URI
with "special"/problematic host and port values.


Commit messages:
 - JDK-8288207

Changes: https://git.openjdk.org/jdk/pull/9126/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=9126&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8288207
  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/9126.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/9126/head:pull/9126

PR: https://git.openjdk.org/jdk/pull/9126

Reply via email to