Newsgroup: it.comp.java
Titolo: Jboss, Jaas ed LDap

Salve a tutti ho un problema che vorrei risolvere, è da circa una
settimana che ci sto sbattendo, ma non ne riesco ad uscirne.
Sto sviluppando un applicazione, la parte in cui non riesco ad andare
avanti è configurare l'accesso alla mia applicazione recuperando
username e password su un Repository LDap.
Premetto che LDap non lo conoscevo, e mi sono letto un po di roba in
giro su internet.
Il Problema è questo.
Io per la mia applicazione come AS ho JBoss ho installato sulla mia
macchina per testare se il tutto funzionasse OpenLDap per Windows
ho configurato sia login-config.xml per la sicurezza jaas con il Realm
di Ldap sia web.xml e creatomi un mio percorso dalla root alle foglie
in un ipotetico db dove ho inserito unsername pwd e ruoli per testare.
La mia applicazione si connette al server mi da sempre autenticazione
fallita.
Chi mi puo' aiutare?


Troppe parole e troppi pochi stack trace.
Le cose che ti dico te le dico senza sapere come si usa LDAP da JBoss ma 
valgono sempre.
1)
Utilizza un client LDAP già fatto e connettiti con il server ldap con 
gli stessi username e password che usi nell'applicazione e vedi se in 
quel caso l'autenticazione ha successo. Non sia mai che ti è scappato un 
carattere diverso nella password.
2)
Cercare il log dell'applicazione, vedi se genera un eccezione o un 
messaggio di errore.
Se non capisci cosa vuol dire l'eccezione cerca il testo su internet e 
vedi che ti viene fuori.
Se non capisci, posta il testo dell'eccezione qua e spera che qualcuno 
sia in grado di aiutarti.
Naturalmente devi postare anche le parti significative del codice 
dell'applicazione.
3)
Cerca su internet e scaricarti un esempio funzionante di accesso a LDAP, 
modificarlo pian piano fino a farlo diventare quello che ti serve per la 
tua applicazione.
-- 
Andrea Francia
http://code.google.com/p/remoted-list/
 - Lazy loading lists through RMI.

 - Mostra testo tra virgolette -
grazie per avermi risposto.
Cerchero' di essere chiaro.
Ho scaricato OpenLdap per windows e con un client mi sono creato un
utente e relativo ruolo
ho impostato una username e una password nella mia directori utente ed
un ruolo users in quella ruolo
Quando vado a richiamarli nella mia pagina jsp configurata con jaas
non mi fa entrare.


Devi trovare il file di log dell'applicazione per trovare la soluzione.
-- 
Andrea Francia
http://www.andreafrancia.it/

 non mi fa entrare.
esistono tantissimi esempi di come si configura un domain di sicurezza 
con ldap, con tanto di ldif da caricare su ldap.
se hai dei dubbi scaricati apache directory studio e con quello prova le 
credenziali di connessione.
-- 
 Fino all'anno scorso avevo un solo difetto. Ero presuntuoso.
http://softvalley.blogspot.com
http://www.flickr.com/photos/marko_po/

 
amedeo.difili...@gmail.com
 ha scritto:

il problema non è nelle credenziali di connessione.
In quanto ho già testato il tutto con un server OpenLdap su windows mi
creo un gruppo utenti e uno ruoli e lo popolo con due directory
con una classe di test riesco a console anche a stampare l'alberature
dalla root principale
Il problema sussiste quando vado a richiamarmi queste credenziali
dalla mia jsp che dovrebbe richiamare il file di configurazione su
JBoss.
in poche parole io ho queste entri sul mio LDap:
dn: ou=roles,dc=jboss,dc=org
objectclass: top
objectclass: organizationalUnit
ou: roles
dn: cn=users,ou=roles,dc=jboss,dc=org
objectClass: top
objectClass: groupOfNames
cn: users
description: the JBossAdmin group
member: uid=test,ou=utenti,dc=jboss,dc=org
dn: ou=utenti,dc=jboss,dc=org
objectClass: top
objectClass: organizationalUnit
ou: utenti
dn: uid=test,ou=utenti,dc=jboss,dc=org
objectclass: top
objectclass: uidObject
objectclass: person
uid: test
cn: test
sn: Ktech Test
userPassword: pippo
questa è la mia configurazione in login-config.xml in JBoss:
<application-policy name="ldapRealm">
	<authentication>
		<login-module code =
"org.jboss.security.auth.spi.LdapExtLoginModule" flag = "required">
			<module-option name
="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</
module-option>
			<module-option name ="java.naming.provider.url">ldap://localhost:
389/</module-option>
			<module-option name ="java.naming.security.authentication">simple</
module-option>
			<module-option name=
"java.naming.security.principal">cn=Manager,dc=jboss,dc=org</module-
option>
			<module-option name= "java.naming.security.credentials">secret</
module-option>
			<module-option name ="principalDNSuffix">ou=utenti,dc=jboss,dc=org</
module-option>
			<module-option name ="principalDNPrefix">cn=</module-option>
			<module-option name ="rolesCtxDN">ou=roles,dc=jboss,dc=org</module-
option>
			<module-option name ="roleDNPrefix">cn=</module-option>
			<module-option name= "uidAttributeID">member</module-option>
			<module-option name= "matchOnUserDN">true</module-option>
   	</login-module>
	</authentication>
</application-policy>
dalla mia pagina di autenticazione mi da sempre Autenticazione Fallita

 dalla mia pagina di autenticazione mi da sempre Autenticazione Fallita
Sul log cosa ti scrive?


>> dnPrettyNormal: <uid=test,ou=utenti,dc=jboss,dc=org>
=> ldap_bv2dn(uid=test,ou=utenti,dc=jboss,dc=org,0)
ldap_err2string
<= ldap_bv2dn(uid=test,ou=utenti,dc=jboss,dc=org)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(uid=test,ou=utenti,dc=jboss,dc=org)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(uid=test,ou=utenti,dc=jboss,dc=org)=0 Success
<<< dnPrettyNormal: <uid=test,ou=utenti,dc=jboss,dc=org>,
<uid=test,ou=utenti,dc
=jboss,dc=org>
ber_scanf fmt (m) ber:
ber_scanf fmt ({M}}) ber:
=> get_ctrls
ber_scanf fmt ({m) ber:
=> get_ctrls: oid="2.16.840.1.113730.3.4.2" (noncritical)
<= get_ctrls: n=1 rc=0 err=""
=> bdb_search
bdb_dn2entry("uid=test,ou=utenti,dc=jboss,dc=org")
=> send_search_entry: dn="uid=test,ou=utenti,dc=jboss,dc=org"
ber_flush: 123 bytes to sd 804
<= send_search_entry
send_ldap_result: conn=36 op=1 p=3
send_ldap_response: msgid=2 tag=101 err=0
ber_flush: 14 bytes to sd 804
connection_get(804): got connid=36
connection_read(804): checking for input on id=36
ber_get_next
ber_get_next on fd 804 failed errno=10054 (WSAECONNRESET)
connection_read(804): input error=-2 id=36, closing.
connection_closing: readying conn=36 sd=804 for close
connection_close: conn=36 sd=804