Bug 52587 - NPE in authenticator when no realm/resource is defined
NPE in authenticator when no realm/resource is defined
Status: RESOLVED FIXED
Product: Tomcat 7
Classification: Unclassified
Component: Catalina
7.0.25
PC Mac OS X 10.4
: P2 minor (vote)
: ---
Assigned To: Tomcat Developers Mailing List
:
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2012-02-02 20:00 UTC by Christopher Schultz
Modified: 2012-02-05 20:15 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christopher Schultz 2012-02-02 20:00:01 UTC
When no Realm is available to authenticate against, an NPE is thrown.

STR:

1. Start with a stock 7.0.25 and modify server.xml:
2. Comment-out <Resource> in <GlobalNamingResources>
3. Comment-out <Realm> in <Engine>
4. Deploy manager app and try to log in

java.lang.NullPointerException
	org.apache.catalina.realm.RealmBase.authenticate(RealmBase.java:340)
	org.apache.catalina.authenticator.BasicAuthenticator.authenticate(BasicAuthenticator.java:158)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:544)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1600)
	java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	java.lang.Thread.run(Thread.java:680)


Clearly, this is a pathological setup, but it might be nice to get a decent error message instead of an NPE.
Comment 1 Mark Thomas 2012-02-05 20:15:15 UTC
The root cause was the the NullRealm was created but not initialised with this configuration. That has been fixed in trunk and 7.0.x and will be included in 7.0.26 onwards.