Utilizzo la sicurezza di primavera con @PreAuthorize sui metodi del mio controller. Il mio ragionamento era che volevo che il controllo dell'autorizzazione si verificasse prevedibilmente in un livello e quanto prima possibile nella richiesta. Tuttavia, ho appena letto la documentazione Spring Security 3 e ho visto che raccomandano di applicare la sicurezza a livello di metodo sul livello di servizio (ma non dicono perché).Le annotazioni a livello del metodo di sicurezza a molla devono essere applicate al livello controller o al livello servizio?
La mia domanda è: dovrebbe scaturire annotazioni livello di metodo di sicurezza da applicare a livello di controller o il livello di servizio? (O "entrambi" o "dipende"?) Ancora più importante: perché?
Grazie, hai menzionato buoni argomenti per mettere la sicurezza sul servizio. Quali considereresti come buoni argomenti per proteggere un controller? Anche per il contesto, l'app che ho in mente ha fondamentalmente un metodo di servizio per endpoint del controller, poiché il mio servizio definisce i limiti delle transazioni. Quindi lo stesso metodo di servizio viene chiamato solo da un posto e non ci sono altri client che utilizzano il servizio. – Jay
Un'altra ragione per cui ho pensato di attribuire l'autorizzazione al servizio è che la domanda su chi può accedere a quale servizio potrebbe essere una decisione aziendale e in quanto tale potrebbe essere individuata con la logica aziendale. – Jay
In cima alla mia testa, non ho argomenti validi per mettere in sicurezza un controller rispetto a un livello di servizio. Ciò non significa che potrebbero non esistere in casi specifici. I requisiti potrebbero specificare regole basate su dati normalmente disponibili solo nel livello Web, ad esempio, come intestazioni di richiesta. –