Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [SPRING-SECURITY] Autenticazione personalizzata

    Salve,

    ho intenzione di sostituire l'attuale metodo di accesso e autenticazione, al momento fatto a mano tramite cookie e integrato in ogni controller, con spring-security.

    Al momento spring è avviato tramite il dispatcherServlet ma da quanto ho capito per usare SpringSecurity devo usare un DelegatingFilterProxy che ne aumenta l'efficacia e la sicurezza.

    Il problema però diventa che non so più come usare SpringMvc perchè solo con il DelegatingFilterProxy non mi vengono mappati i controller.

    Come molti esempi non posso usare due context differenti per l'autenticazione perchè ho la necessità di accedere al database e quindi vorrei usare un solo xml di configurazione.

    La mia applicazione deve essere stateless perchè ho la necessità che sia scalabile, e quindi non deve usare le jsession. Però usa un cookies che è un token associato ad un account.

    Una volta effettuato il login viene creato un cookies con un token speciale. Ogni volta che una pagina viene visualizzata ogni controller, attualmente, carica l'account associato al token.


    Spring-security non dovrebbe occuparsi della pagina di login che esiste già, ma dovrebbe occuparsi di caricare l'account relativo prima dell'esecuzione dei controller usando il cookies inviato dal browser.

    Quindi l'unica cosa che voglio è che venga impostato il SecurityContextHolder.getContext().setAuthenticati on(auth); ad ogni chiamata e che mi funzionino i
    <sec:intercept-url pattern="/admin*" access="ROLE_USER/>
    e i tag jsp
    <sec:authorize


    Non ho bisogno di un form di login perchè uso i vari social network per effettuare il login e il controller, una volta identificato l'utente, salva nei cookies il token mio interno e non quello del social network usato per effettuare il login.


    I problemi sono tanti e non ho la padronanza neanche parziale per affrontare questo problema. Ho proprio bisogno di leggere una buona guida al riguardo ma dopo centinaia di pagine web lette non ne riesco proprio ad uscire.

    Grazie
    ...

  2. #2
    Risolto!

    Ho creato due context, il root e il servlet context.
    Nel servlet context c'è solo la configurazione dell'MVC mentre nel root context c'è tutto quello generale.
    Ho dovuto fare un filtro custom da dare ad sec:http
    bean id="customAuthFilter" class="it.emida.interceptor.LoginAccountIntercepto r"/>
    <sec:http use-expressions="true">
    <sec:custom-filter ref="customAuthFilter" after="SECURITY_CONTEXT_FILTER"/>

    Funzionano benissimo sia i jsp che le annotation @Security che sec:intercept-url

    Ho dovuto leggermi i sorgenti di spring
    ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.