javax.servlet.ServletException: javax.security.auth.login.LoginException: Null Server Key

Apache's JIRA Issue Tracker | Tsz Wo Nicholas Sze | 5 years ago
tip
Your exception is missing from the Samebug knowledge base.
Here are the best solutions we found on the Internet.
Click on the to mark the helpful solution and get rewards for you help.
  1. 0

    I configured a secure HDFS cluster, but failed to start the NameNode because I had enabled WebHDFS without specifying _dfs.web.authentication.kerberos.principal_ in hdfs-site.xml. In the NN logs, I saw: {noformat} 2012-05-28 17:50:13,021 INFO org.apache.hadoop.security.authentication.server.KerberosAuthenticationHandler: Login using keytab /etc/hdfs.keytab, for principal HTTP/c1225.hal.cloudera.com@HAL.CLOUDERA.COM 2012-05-28 17:50:13,030 INFO org.apache.hadoop.security.authentication.server.KerberosAuthenticationHandler: Initialized, principal [HTTP/c1225.hal.cloudera.com@HAL.CLOUDERA.COM] from keytab [/etc/hdfs.keytab] 2012-05-28 17:50:13,031 WARN org.apache.hadoop.security.authentication.server.AuthenticationFilter: 'signature.secret' configuration not set, using a random value as secret 2012-05-28 17:50:13,032 WARN org.mortbay.log: failed SPNEGO: javax.servlet.ServletException: javax.servlet.ServletException: Principal not defined in configuration 2012-05-28 17:50:13,033 WARN org.mortbay.log: Failed startup of context org.mortbay.jetty.webapp.WebAppContext@21453d72{/,file:/usr/lib/hadoop-hdfs/webapps/hdfs} javax.servlet.ServletException: javax.servlet.ServletException: Principal not defined in configuration at org.apache.hadoop.security.authentication.server.KerberosAuthenticationHandler.init(KerberosAuthenticationHandler.java:185) at org.apache.hadoop.security.authentication.server.AuthenticationFilter.init(AuthenticationFilter.java:146) at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713) at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.jetty.Server.doStart(Server.java:224) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.apache.hadoop.http.HttpServer.start(HttpServer.java:617) at org.apache.hadoop.hdfs.server.namenode.NameNodeHttpServer.start(NameNodeHttpServer.java:173) at org.apache.hadoop.hdfs.server.namenode.NameNode.startHttpServer(NameNode.java:529) at org.apache.hadoop.hdfs.server.namenode.NameNode.startCommonServices(NameNode.java:471) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:434) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:590) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:571) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1134) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1193) Caused by: javax.servlet.ServletException: Principal not defined in configuration at org.apache.hadoop.security.authentication.server.KerberosAuthenticationHandler.init(KerberosAuthenticationHandler.java:146) ... 24 more 2012-05-28 17:50:13,034 WARN org.mortbay.log: Nested in javax.servlet.ServletException: javax.servlet.ServletException: Principal not defined in configuration: javax.servlet.ServletException: Principal not defined in configuration at org.apache.hadoop.security.authentication.server.KerberosAuthenticationHandler.init(KerberosAuthenticationHandler.java:146) at org.apache.hadoop.security.authentication.server.AuthenticationFilter.init(AuthenticationFilter.java:146) at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713) at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.jetty.Server.doStart(Server.java:224) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.apache.hadoop.http.HttpServer.start(HttpServer.java:617) at org.apache.hadoop.hdfs.server.namenode.NameNodeHttpServer.start(NameNodeHttpServer.java:173) at org.apache.hadoop.hdfs.server.namenode.NameNode.startHttpServer(NameNode.java:529) at org.apache.hadoop.hdfs.server.namenode.NameNode.startCommonServices(NameNode.java:471) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:434) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:590) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:571) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1134) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1193) 2012-05-28 17:50:13,041 INFO org.mortbay.log: Started SelectChannelConnector@c1225.hal.cloudera.com:50070 2012-05-28 17:50:13,041 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: Web-server up at: c1225.hal.cloudera.com:50070 2012-05-28 17:50:13,042 INFO org.apache.hadoop.ipc.Server: IPC Server Responder: starting 2012-05-28 17:50:13,042 INFO org.apache.hadoop.ipc.Server: IPC Server listener on 17020: starting 2012-05-28 17:50:13,045 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: NameNode up at: c1225.hal.cloudera.com/172.29.98.216:17020 2012-05-28 17:50:13,045 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Starting services required for standby state 2012-05-28 17:50:13,048 INFO org.apache.hadoop.hdfs.server.namenode.ha.EditLogTailer: Will roll logs on active node at c1226.hal.cloudera.com/172.29.98.217:17020 every 120 seconds. 2012-05-28 17:50:13,058 INFO org.apache.hadoop.hdfs.server.namenode.ha.StandbyCheckpointer: Starting standby checkpoint thread... Checkpointing active NN at c1226.hal.cloudera.com:50070 Serving checkpoints at c1225.hal.cloudera.com/172.29.98.216:50070 {noformat} I couldn't figure out what I had misconfigured, but ATM found that I was missing _dfs.web.authentication.kerberos.principal_. Logging an error if this property is not configured when WebHDFS and security are enabled would be useful for future users running into the same problem.

    Apache's JIRA Issue Tracker | 5 years ago | Stephen Chu
    javax.servlet.ServletException: Principal not defined in configuration

    15 unregistered visitors
    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. javax.security.auth.login.LoginException

      Null Server Key

      at com.sun.security.auth.module.Krb5LoginModule.commit()
    2. Java RT
      LoginContext.login
      1. com.sun.security.auth.module.Krb5LoginModule.commit(Krb5LoginModule.java:965)
      2. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      3. sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      4. sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      5. java.lang.reflect.Method.invoke(Method.java:597)
      6. javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
      7. javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
      8. javax.security.auth.login.LoginContext$5.run(LoginContext.java:706)
      9. java.security.AccessController.doPrivileged(Native Method)
      10. javax.security.auth.login.LoginContext.invokeCreatorPriv(LoginContext.java:703)
      11. javax.security.auth.login.LoginContext.login(LoginContext.java:576)
      11 frames
    3. Apache Hadoop Auth
      AuthenticationFilter.init
      1. org.apache.hadoop.security.authentication.server.KerberosAuthenticationHandler.init(KerberosAuthenticationHandler.java:169)
      2. org.apache.hadoop.security.authentication.server.AuthenticationFilter.init(AuthenticationFilter.java:146)
      2 frames
    4. Jetty Server
      FilterHolder.doStart
      1. org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
      1 frame
    5. Jetty Util
      AbstractLifeCycle.start
      1. org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
      1 frame
    6. Jetty Server
      WebAppContext.doStart
      1. org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
      2. org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
      3. org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
      4. org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
      5. org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
      5 frames
    7. Jetty Util
      AbstractLifeCycle.start
      1. org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
      1 frame
    8. Jetty Server
      ContextHandlerCollection.doStart
      1. org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
      2. org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
      2 frames
    9. Jetty Util
      AbstractLifeCycle.start
      1. org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
      1 frame
    10. Jetty Server
      Server.doStart
      1. org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
      2. org.mortbay.jetty.Server.doStart(Server.java:224)
      2 frames
    11. Jetty Util
      AbstractLifeCycle.start
      1. org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
      1 frame
    12. Hadoop
      HttpServer.start
      1. org.apache.hadoop.http.HttpServer.start(HttpServer.java:617)
      1 frame
    13. Apache Hadoop HDFS
      NameNode.main
      1. org.apache.hadoop.hdfs.server.namenode.NameNodeHttpServer.start(NameNodeHttpServer.java:173)
      2. org.apache.hadoop.hdfs.server.namenode.NameNode.startHttpServer(NameNode.java:540)
      3. org.apache.hadoop.hdfs.server.namenode.NameNode.startCommonServices(NameNode.java:482)
      4. org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:423)
      5. org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:601)
      6. org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:582)
      7. org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1143)
      8. org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1202)
      8 frames