Bug 52587 - NPE in authenticator when no realm/resource is defined
Summary: NPE in authenticator when no realm/resource is defined
Status: RESOLVED FIXED
Alias: None
Product: Tomcat 7
Classification: Unclassified
Component: Catalina (show other bugs)
Version: 7.0.25
Hardware: PC Mac OS X 10.4
: P2 minor (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
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.