Unsupported protocol: Negotiate NTLM

Jan 24, 2011 at 5:12 PM

I'm running the Waffle servlet filter in JBoss 5.1.0.GA with Java 1.6.0_20. My application refused to start due to the error, "Unsupported protocol: Negotiate NTLM". I assumed a corrupt web.xml file, but nothing I did fixed the problem.

Finally I changed this line in the NegotiateSecurityFilterProvider initParameter method and now the app starts without error. I have no idea why my environment is so sensitive - maybe because it's a virtual machine.

            String[] protocolNames = parameterValue.split("\\s+");

The split("\\s+") matches any white space, so this is a bit more hardened than the original implementation:

Mermeister

Coordinator
Jan 24, 2011 at 5:57 PM

Maybe you can extend the tests and write a nice patch for this? Thx.

Coordinator
Feb 2, 2011 at 5:05 PM

I committed this in rev. 62198.

Mar 16, 2011 at 11:12 AM

Finally I changed this line in the NegotiateSecurityFilterProvider initParameter method and now the app starts without error. I have no idea why my environment is so sensitive - maybe because it's a virtual machine.

U had mentioned that u changed NegotiateSecurityFilterProvider, but never mentioned to what?

Please Help Me

Coordinator
Mar 16, 2011 at 1:13 PM

@mady29: this is the diff, it's the same trivial change above. Are you having the same problem?

May 18, 2011 at 8:31 PM
Edited May 18, 2011 at 11:27 PM

(Sorry! Just noticed this is fixed in trunk... disregard!)

This also affects NegotiateSecurityFilter, which splits on "\n" in its init method to parse out provider names. I found it when trying to add the BasicSecurityFilterProvider... the error message in this case is:

java.lang.RuntimeException: java.lang.ClassNotFoundException: waffle.servlet.spi.NegotiateSecurityFilterProvider waffle.servlet.spi.BasicSecurityFilterProvider from BaseClassLoader@1d89cb4{VFSClassLoaderPolicy@181a7a
    at waffle.servlet.spi.SecurityFilterProviderCollection.<init>(Unknown Source)
    at waffle.servlet.NegotiateSecurityFilter.init(Unknown Source)