Pregunta

Estoy corriendo Tomcat 6.0.29 y creó un reino y LoginModule de mi propia. Se definen en server.xml de esta manera:

<Realm className="mycompany.tomcat.MyRepositoryRealm" appName="My_Realm" userClassNames="mycompany.tomcat.IdentityPrincipal" roleClassNames="mycompany.tomcat.RolePrincipal" useContextClassLoader="true"/>

He añadido la biblioteca que contiene estas clases a mi carpeta Tomcat / lib. Aparte de eso, no he cambiado Tomcat desde su configuración por defecto.

Cuando voy a encender la aplicación de administración de Tomcat en http://localhost:9080/manager/html, no puedo iniciar sesión y los espectáculos de registro Tomcat un error y StackTrace para mi módulo de inicio de sesión.

Algunas ideas? Gracias!

Editar

Por la petición, aquí está el StackTrace. Mi reino conecta a un servicio de JBoss, así que por eso me sale el error NamingContextFactory.

javax.security.auth.login.LoginException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory at mycompany.tomcat.MyRepositoryLoginModule.login(MyRepositoryLoginModule.java:88) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769) at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) at javax.security.auth.login.LoginContext.login(LoginContext.java:579) at org.apache.catalina.realm.JAASRealm.authenticate(JAASRealm.java:410) at org.apache.catalina.realm.JAASRealm.authenticate(JAASRealm.java:335) at mycompany.tomcat.MyRepositoryRealm.authenticate(MyRepositoryRealm.java:34) at org.apache.catalina.authenticator.BasicAuthenticator.authenticate(BasicAuthenticator.java:181) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:528) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:619)

¿Fue útil?

Solución

I fue capaz de averiguar el problema.

reinos de seguridad se puede definir para un motor, anfitrión, o el contexto. Yo había definido el ámbito de toda la serie (en server.xml), por lo que la aplicación de administración de Tomcat estaba tratando de usarlo. He arreglado el problema mediante la definición del reino en una META-INF / context.xml archivo dentro de mi aplicación web.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top