2010-08-19 11 views
9

In Glassfish v2 Proteggere le mie ricerche JNDI abilitando la casella di controllo "Autenticazione IIOP Client" nella console di amministrazione sotto il nodo ORB.IIOP Client Authentication e ProgrammaticLogin in Glassfish v3

Nel mio client standalone eseguo quindi un "ProgrammaticLogin", che quindi mi consente di effettuare ricerche JNDI.

In Glassfish v3 tuttavia, ottengo questo errore se vuole fare qualsiasi ricerche JNDI nella stessa configurazione:

18.08.2010 14:31:10 com.sun.enterprise.transaction.JavaEETransactionManagerSimplified 
initDelegates INFO: Using 
com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate 
as the delegate 
org.omg.CORBA.NO_PERMISSION: 
----------BEGIN server-side stack trace---------- 
org.omg.CORBA.NO_PERMISSION: 
vmcid: 0x0 
minor code: 0 
completed: No 

Sono abbastanza sicuro che il "ProgrammaticLogin" funziona in generale, dal momento che mi permette di fare chiamate a metodi remoti sui miei EJB protetti (utilizzando @RolesAllowed ma se l'autenticazione del client IIOP è disattivata).

L'utente con cui ho effettuato l'accesso è un utente semplice che ho creato per il dominio "file".

Qualche idea, perché il ProgrammticLogin non riesce a funzionare in Glassfish v3 per autorizzare le ricerche JNDI?

Oppure qual è il modo corretto di autenticarsi con l'ORB da un client standalone; per questo scopo?

risposta

1

Ti sei assicurato che appserv-rt.jar si trovi sul classpath? Fa parte di ogni installazione glassfish3, ad es. alla mia installazione si trova qui:

/opt/glassfish3/glassfish/lib 

Questo è molto importante. Contiene alcune classi java client in particolare: AppclientIIOPInterceptorFactory.

Questi aggiungono un SecClientRequestInterceptor all'ORB che si preoccupa che il nome utente e la password siano aggiunti alla richiesta GIOP inviata al server.

Mi ci sono voluti circa due giorni di scansione del codice sorgente di glassfish e annusando i pacchetti di corba sul filo con wireshark fino a quando ho trovato questo.

Un esempio di come proteggere un fagioli e scrivere un vero e proprio client Java EE può essere trovato qui: http://download.oracle.com/docs/cd/E19798-01/821-1841/bnbzk/index.html

Spero che questo aiuti Manuel