Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/06/2007, 00:45
KASKOSCURO
 
Fecha de Ingreso: junio-2007
Mensajes: 3
Antigüedad: 16 años, 10 meses
Puntos: 0
Configurar JNDI Realm

Buenos días,

llevo ya un par de días peleándome con la configuración de un realm JNDI en un contexto web de Tomcat. La cuestión es que parece que me valida correctamente el usuario contra el LDAP pero parece ser que no puede asociar ese usuario al rol que tiene los permisos para acceder al contexto web de mi aplicación y siempre me devuelve una página de error HTTP 403 (no autorizado). Las trazas que veo en el tomcat así lo indican:

DEBUG http-6060-Processor25 org.apache.catalina.authenticator.AuthenticatorBas e - Calling authenticate()
DEBUG http-6060-Processor25 org.apache.catalina.authenticator.AuthenticatorBas e - Authenticated 'tssiweb' with type 'BASIC'
DEBUG http-6060-Processor25 org.apache.catalina.authenticator.AuthenticatorBas e - Calling accessControl()
DEBUG http-6060-Processor25 org.apache.catalina.realm.RealmBase - Checking roles GenericPrincipal[tssiweb()]
DEBUG http-6060-Processor25 org.apache.catalina.realm.RealmBase - El usuario tssiweb NO desempeña el papel de tssiwebuser
DEBUG http-6060-Processor25 org.apache.catalina.realm.RealmBase - No role found: tssiwebuser
DEBUG http-6060-Processor25 org.apache.catalina.authenticator.AuthenticatorBas e - Failed accessControl() test

En el LDAP tengo la siguiente información de usuario (tssiweb) y roles (tssiwebuser):

dn: cn=tssiwebuser,ou=groups, o=tmm
objectClass: groupOfUniqueNames
uniqueMember: uid=tssiweb, ou=People, o=tmm
cn: tssiwebuser

dn: uid=tssiweb,ou=People, o=tmm
mail: [email protected]
userPassword:: e1NIQX0wRFBpS3VOSXJyVm1EOElVQ3V3MWhReE5xWmM9
uid: tssiweb
objectClass: inetOrgPerson
sn: tssiweb
cn: tssiwebuser

En el fichero de contexto web tengo lo siguiente:

<Context docBase="${catalina.home}/webapps/TSSIWEB">
<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
connectionURL="ldap://10.95.8.110:389"
userPattern="uid={0}, ou=People, o=tmm"
roleBase="ou=groups, o=tmm"
roleName="cn"
roleSearch="(uniqueMember={0})" />

</Context>

Y para acabar en el web.xml tengo las siguiente directivas de seguridad:

<!-- Security definitions -->

<!-- Define a Security Constraint on this Application -->
<security-constraint>
<web-resource-collection>
<web-resource-name>Entire Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>tssiwebuser</role-name>
</auth-constraint>
</security-constraint>

<!-- Define the Login Configuration for this Application -->
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>TSSIWEB</realm-name>
</login-config>

<!-- Security roles referenced by this web application -->
<security-role>
<description>The role that is required to log in to the TSSIWEB Application</description>
<role-name>tssiwebuser</role-name>
</security-role>

Supongo que será alguna chorrada de configuración que esté pasando por alto. Estaría muy agradecido si alguien pudiera darme alguna pista o consejo al respecto.

Muchas gracias y saludos,
k