2012-12-03 9 views
5

Sto provando a utilizzare SpringSecurityService in un filtro per ottenere l'utente attualmente connesso. Il problema è che ho ottenuto null e non posso ottenere l'utente corrente.Null quando si inserisce SpringSecurityService in Filter in Grails

class ApplicationFilters { 

    def springSecurityService 

    def filters = { 
     all(controller:'*', action:'*') { 

     after = { Map model -> 

      def userName=springSecurityService.currentUser 
     } 
     } 
    } 
} 

Ho cercato anche di ottenere mappa params dal filtro e ho avuto anche nullo. Cosa dovrei fare per risolvere questo?

Grazie,

+1

I Ho notato che nei miei servizi, l'iniezione delle dipendenze non funziona su una ricarica dinamica del codice: ho bisogno di uccidere il processo di Grails e riavviarlo. Stavo ricevendo NPE simili che non riuscivo a capire. Forse è lo stesso per te? –

+0

Provare a rimuovere 'Map model ->' dal codice. Oltre a questo il mio codice è esattamente lo stesso. –

+0

@JasonNichols Posso confermare questo. Sembra che l'iniezione di dipendenza non stia funzionando sulla ricarica dinamica del codice. –

risposta

0

non so se hai ancora risolto il problema, ma si può sicuramente chiamare il Service all'interno della classe *Filters facendo riferimento alla iniettato applicationContext in questo modo:

class TestFilters { 
    def filters = { 
    all(controller:'*', action:'*') { 
     before = { 
      applicationContext.testService.serviceMethod() 
     } 
     after = { Map model -> 

     } 
     afterView = { Exception e -> 

     } 
    } 
    } 
} 
Problemi correlati