Domanda

Ho un meccanismo di sicurezza abbastanza sofisticato che ho implementato usando Apache Shiro (ex JSecurity). Al fine di conoscere le regole precise di visibilità per un oggetto, ho bisogno di eseguire del codice (ruoli cioè di ricerca degli utenti, le autorizzazioni, gruppi, ecc). Mi piacerebbe eseguire query che Tell Me oggetti che l'utente corrente è autorizzato a vedere.

Ho trovato che i filtri Hibernate offrono capacità di applicare un filtro per i tuoi oggetti / query, che sembra essere quello che ho potuto usare qui.

Tuttavia, gli esempi che ho trovato sembrano essere centrata sulla base di dati (vale a dire che ho un campo / colonna IsVisible, filtro ogni volta che è impostata su true). C'è un modo per eseguire del codice come un filtro Hibernate, o è solo uno strato sottile che aggiunge un po 'di clausola WHERE per tutte le vostre domande.

Sono in realtà usando questo all'interno dell'infrastruttura Grails / GORM, quindi forse ci sono alcune altre soluzioni che sono validi. Un plug esiste che integra filtri Hibernate, ma a meno che non posso usarlo con un po 'di codice per l'esecuzione come parte del processo di filtraggio Hibernate, non sarà davvero mi aiuterà qui.

È stato utile?

Soluzione

Purtroppo, i filtri Hibernate non risolverà il problema. Possono essere molto utili, ma è esattamente uno strato sottile che aggiunge un po 'di clausola WHERE per ogni recupero.

Dal momento che si sta utilizzando Grails, si potrebbe scoprire che AOP ti darà quello che stai cercando. Date un'occhiata a questo: http://www.infoq.com/articles/aop- con-groove

In bocca al lupo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top