2009-05-11 10 views
0

J'essaie de configurer un domaine dans Tomcat pour accéder à un serveur LDAP avec la sécurité TLS. Ma configuration de base de Realm ressemble à ceci:Erreur LDAP dans Tomcat - confidentialité TLS requise

 
    <Realm className="org.apache.catalina.realm.JNDIRealm" 
     debug="99" 
     connectionURL="ldap://localhost:389/" 
     userPattern="uid={0},ou=People,dc=nsdl,dc=org" /> 

Je reçois une erreur comme ceci:

 
SEVERE: Catalina.start: 
LifecycleException: Exception opening directory server connection: 
    javax.naming.AuthenticationNotSupportedException: [LDAP: error code 13 - TLS confidentiality required] 
    at org.apache.catalina.realm.JNDIRealm.start(JNDIRealm.java:1697) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1006) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:448) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433) 

J'ai essayé une grande variété de corrections, sans changer le problème ou le message d'erreur. Cela comprend:

  • changer le protocole dans le connectionURL à "ldaps"
  • changer le port du connectionURL à 636
  • ajoutant protocol = "TLS" tot il royaume
  • déplacer la déclaration de royaume de conf/server.xml (sous hôte ou moteur) à META-INF/context.xml dans la webapp
  • ajoutant ldap.jar au serveur/lib
  • changer de Tomcat 5.5 à Tomcat 6.0

Chacun d'entre eux produit le même message d'erreur (bien que la trace de la pile soit différente dans certaines configurations).

Des idées?

Répondre

1

La réponse n'est actuellement pas liée à la question telle que postée ici. Le problème était lié à la façon dont le royaume était spécifié.

Le royaume a été spécifié dans un élément de contexte contenu dans un fichier situé dans le webapp à META-INF/context.xml

Ce que je ne savais pas est que

  • copies Tomcat ce fichier conf/Catalina/localhost/{webapp} .xml,
  • Si une version plus récente du fichier WAR est donnée à Tomcat, il ne remplacera pas {} .xml webapp avec la nouvelle version

La raison pour laquelle le même message d'erreur s'est produit à chaque fois était que ma copie initiale du domaine était mauvaise et mes tentatives de correction n'étaient pas prises en compte. En fait, la spécification du domaine est correcte comme indiqué ci-dessus. Une fois que j'ai nettoyé le fichier têtu, ça a bien fonctionné.