2012-01-11 10 views
6

Sono piuttosto disperato, perché penso che ci debba essere una soluzione facile al mio problema, ma sto cercando - inutilmente.Vincolo di sicurezza in web.xml per utenti autenticati senza appartenenze ai ruoli

Sto usando un Reame personalizzato in Glassfish 3.1.1. Questo ambito personalizzato (implementa AppservPasswordLoginModuleInterface) acquisisce un token di sicurezza dalla richiesta HTTPS, convalida il token di sicurezza e quindi restituisce l'utente a Glassfish.

Il problema è che il token di sicurezza non contiene alcun gruppo, il che significa che il metodo public String [] getGroupsList() o il dominio personalizzato restituisce una lista vuota (correttamente, perché non ci sono ruoli nel token di sicurezza).

Detto questo, mi piacerebbe avere un controllo di sicurezza che solo gli utenti convalidati possono effettuare il login. So che posso utilizzare il seguente vincolo in web.xml:

<security-constraint> 
    <web-resource-collection> 
    <web-resource-name>mywebapp</web-resource-name> 
    <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
    <role-name>Users</role-name> 
    </auth-constraint> 
</security-constraint> 

Ma perché non ho nessun gruppo, non posso mappare nessun gruppo ai ruoli, e quindi non posso usare l'autenticazione-vincolo con il ruolo -nome.

C'è un modo in web.xml per definire che solo gli utenti autenticati sono autorizzati, ignorando in che ruolo sono e ignorando se sono in alcun ruolo.

ci sono un paio di soluzioni che non posso implementare:

  • non posso cambiare il LDAP sottostante per includere i ruoli, perché lo schema LDAP e il modo in cui gli utenti LDAP vengono mappati alla sicurezza gettoni nostri fuori del campo di applicazione .
  • Devo utilizzare l'attuale gestore di realm personalizzato, non posso sostituirlo con uno dei miei che restituisce solo un gruppo predefinito. L'ho provato una volta, e ha funzionato. Ma non posso sostituire il regno personalizzato esistente con il mio perché il regno personalizzato dovrebbe essere generico.

Ma credo davvero che ci dovrebbe essere un modo in web.xml solo dire: Ignora tutti i gruppi e ruoli, voglio solo un utente autenticato?

Qualsiasi aiuto sarebbe apprezzato.

risposta

15

Abbastanza vecchio, ma per coloro che cercano una risposta, è possibile utilizzare un nome * ruolo:

<auth-constraint> 
    <role-name>*</role-name> 
</auth-constraint> 

This guy riuscito a risolverlo.

+0

Non funziona su Weblogic 10.3.4. –

+0

Funziona su WF10.1.0. Non dimenticare di impostare anche in a * (altrimenti, se * è solo in , questo non funziona). –

Problemi correlati