Dove devo accedere l'utente in base alla sessione http: servizio o controller?

0

So che la pratica migliore è lasciare tutto sull'autenticazione / autorizzazione al livello di servizio.
Il controller non dovrebbe esserne a conoscenza.

Ma come consentire ad un servizio (dal livello di servizio in modo tale) di verificare la presenza di una sessione http se non si inoltra la richiesta http?

In questo caso particolare, quando il login richiede un contesto di richiesta http, il controller deve essere il padrone dell'autenticazione e quindi passare l'utente recuperato come parametro del servizio come questo (in Java)? :

public interface SomeService {
     void aService(User user, ...);
}

Un altro esempio potrebbe essere l'uso del meccanismo JWT.
La convalida del token deve essere attivata dal controller o dal servizio, assumendo in questo caso successivo che si passa il token in parametro del servizio?

    
posta Mik378 15.11.2015 - 01:31
fonte

1 risposta

1

In ASP.NET MVC, ci sono attributi che è possibile applicare ai metodi Controller che trasferiscono le chiamate a un controller non autorizzato se l'utente non è autenticato. Questo ha senso per me, dal momento che vuoi cogliere i tentativi di intrusione molto presto nel processo. Se l'utente non è autenticato, il metodo del controller non viene nemmeno eseguito.

Una volta che l'utente è stato autenticato, l'autorizzazione può avvenire in diversi modi. Puoi avere un'autenticazione basata sui ruoli che consente agli utenti di eseguire alcune azioni ma non altre. I ruoli e le assegnazioni di ruolo vengono generalmente mantenute nelle tabelle del database guidate dall'account utente che ha effettuato l'accesso; puoi anche impersonare un utente a scopo di supporto.

    
risposta data 15.11.2015 - 01:42
fonte

Leggi altre domande sui tag