Question

Je suis en cours d'exécution Tomcat 6.0.29 et a créé un royaume et LoginModule de moi-même. Ils sont définis dans server.xml comme ceci:

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

J'ai ajouté la bibliothèque contenant ces classes à mon tomcat / lib dossier. A part cela, je n'ai pas changé Tomcat de sa configuration par défaut.

Quand je vais tirer l'application de gestion Tomcat à http://localhost:9080/manager/html, je ne peux pas connecter et le journal de tomcat affiche une erreur et stacktrace pour mon module de connexion.

Toutes les idées? Merci!

Modifier

Par demande, voici le stacktrace. Mon royaume se connecte à un service JBoss, de sorte que de la raison pour laquelle je reçois l'erreur de 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)

Était-ce utile?

La solution

j'ai pu comprendre le problème.

domaines de sécurité peut être défini pour un moteur, l'hôte ou le contexte. J'avais défini le royaume pour toute l'armée (en server.xml), de sorte que l'application de gestion de tomcat a essayé de l'utiliser. Je fixe le problème en définissant le domaine dans un fichier META-INF / context.xml à l'intérieur de mon application web.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top