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

Apache's JIRA Issue Tracker | Tsz Wo Nicholas Sze | 6 years ago
tip
Do you know that we can give you better hits? Get more relevant results from Samebug’s stack trace search.
  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