Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 55
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    100

    Autentificazione con Spring

    Buena a tutti
    Durnate lo sviluppo di un'applicazione web con Java, per esgienze particolari ho dovuto gestire la profilazione degli utenti tramite application server/web....prima JBoss..poi Tomcat...ora la nuova richiesta è WebSphere....... risultato, mi sono rotto le balls di impazzire per adattare i vari file ogni volta
    Ho sentito da un tizio che ora con Spring è possibile gestire l'autenticazione (quindi login, ruoli, ecc..) in modo molto molto simile a quello che ho fatto fino ad ora......e questo farebbe a caso mio perchè Spring è diciamo l'unica cosa che non cambierà mai nell'applicazione in questione.

    Ho cercato un po' (velocemente) in rete ma non ho trovato granchè....voi potete darmi qualche dritta in merito a questo discorso?
    Grazie in anticipo

  2. #2

    Re: Autentificazione con Spring

    Originariamente inviato da Otaking
    Buena a tutti
    Durnate lo sviluppo di un'applicazione web con Java, per esgienze particolari ho dovuto gestire la profilazione degli utenti tramite application server/web....prima JBoss..poi Tomcat...ora la nuova richiesta è WebSphere....... risultato, mi sono rotto le balls di impazzire per adattare i vari file ogni volta
    Ho sentito da un tizio che ora con Spring è possibile gestire l'autenticazione (quindi login, ruoli, ecc..) in modo molto molto simile a quello che ho fatto fino ad ora......e questo farebbe a caso mio perchè Spring è diciamo l'unica cosa che non cambierà mai nell'applicazione in questione.

    Ho cercato un po' (velocemente) in rete ma non ho trovato granchè....voi potete darmi qualche dritta in merito a questo discorso?
    Grazie in anticipo
    Io ho avuto a che fare con Spring Security 2.0 e ti confermo è che è molto potente, puoi gestire la profilazione in maniera molto precisa, anche url per url basandola su ruoli caricati da database o anche cablati su file di configurazione. Attualmente credo siamo alla 3.x che fa un largo uso delle annotazioni per la configurazione. Io onestamente non amo la configurazione effettuata mediante annotazioni perché preferisco che sia centralizzata sul un file e non sparsa per tutto il codice. Alcune cose interessanti che si possono fare (e che mi è capitato di fare), sono la gestione dello switch /exit user (qualcosa di simile al comando sudo su ambiente linux) e la possibilità di customizzare l'autenticazione integrandosi il Single Sign On con altri sistemi.
    Per quanto concerne le "dritte" ti direi di leggere direttamente la documentazione ufficiale , che del resto è quello che ho sempre fatto io quando mi è servito. Ti avviso fin da ora che non sono certo un esperto di spring security (nemmeno di spring), mi posso definire al massimo uno che lo ha utilizzato con successo per fare alcune cose, perciò per la maggior parte dei problemi dovrai affidarti al signor G. .Ciao
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    100

    Re: Re: Autentificazione con Spring

    Caspita sembra proprio potente!!

    Originariamente inviato da unomichisiada
    Io ho avuto a che fare con Spring Security 2.0 e ti confermo è che è molto potente, puoi gestire la profilazione in maniera molto precisa, anche url per url basandola su ruoli caricati da database o anche cablati su file di configurazione.
    Che è quello che vorrei realizzare per non allontanarmi troppo da quello che ho fatto fino ad ora... ho infatti 2 tabelle, una che gestisce gli utenti e una i ruoli. Poi ovviamente c'è il solito .xml dove configurare il tutto (anzi...all'inizio facevo tutto tramite vari file xml....poi dopo sono dovute subentrare le tabelle per alcune esigenze)

    Attualmente credo siamo alla 3.x che fa un largo uso delle annotazioni per la configurazione. Io onestamente non amo la configurazione effettuata mediante annotazioni perché preferisco che sia centralizzata sul un file e non sparsa per tutto il codice.
    Concordo alla grande...io evito addirittura di usare i framework con le annotazioni perchè è uno stile che non digerisco

    Ti avviso fin da ora che non sono certo un esperto di spring security (nemmeno di spring), mi posso definire al massimo uno che lo ha utilizzato con successo per fare alcune cose, perciò per la maggior parte dei problemi dovrai affidarti al signor G. .Ciao
    Si si come avrai intuito, nemmeno io sono un esperto ma grazie comunque delle informazioni...vediamo cosa si riesce a tirare fuori =)

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    100
    L'unica cosa che mi lascia un po' perplesso per ora, è la possibilità di usare appunto le tabelle; nel senso...

    Nel file "applicationContext-security.xml" si possono definire gli utenti in modo diretto così facendo:
    codice:
    <security:authentication-provider>
       <security:user-service>
          <security:user name="user"        password="user"         authorities="ROLE_USER" />
          <security:user name="supervisor"  password="supervisor"   authorities="ROLE_SUPERVISOR" />
          <security:user name="admin"       password="admin"        authorities="ROLE_ADMIN" />
       </security:user-service>
    </security:authentication-provider>
    immagino che si debba sostituire questa parte con qualcosa per agganciare le tabelle! In giro per la rete ho trovato questo:
    codice:
    <authentication-provider>
       <jdbc-user-service data-source-ref="dataSource" authorities-by-username-query="select username,authority from users where username=?"/>
    </authentication-provider>
    però non ho capito questo dataSource dove debba essere dichiarato.......

  5. #5
    questo è uno stralcio preso direttamente dal codice (funzionante) cui ho lavorato io

    security.xml
    codice:
       <authentication-provider user-service-ref="userDao">
            <password-encoder ref="passwordEncoder"/>
        </authentication-provider>
    application-context.xml
    codice:
     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    
            <property name="driverClassName" value="${jdbc.driverClassName}"/>
    
            <property name="url" value="${jdbc.url}"/>
    
            <property name="username" value="${jdbc.username}"/>
    
            <property name="password" value="${jdbc.password}"/>
    
            <property name="maxActive" value="30"/>
    
            <property name="maxIdle" value="10"/>
    
            <property name="maxWait" value="1000"/>
    
            <property name="defaultAutoCommit" value="true"/>
    
        </bean>
        <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    
            <property name="dataSource" ref="dataSource"/>
    
            <property name="configLocation" value="classpath:/sql-map-config.xml"/>
    
        </bean>
      <bean id="userDao" class="com.yourcompany.UserDaoImpl">
    
    
            <property name="sqlMapClient" ref="sqlMapClient"/>
    
        </bean>
    dove UserDaoImpl deve essere il tuo dao ed implementare org.springframework.security.userdetails.UserDetai lsService
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    100
    dove UserDaoImpl deve essere il tuo dao ed implementare org.springframework.security.userdetails.UserDetai lsService
    ..ma intendi proprio da classe java?
    nel senso:
    codice:
    public class UsersDAOImpl extends SqlMapClientDaoSupport implements UsersDAO, org.springframework.security.userdetails.UserDetailsService  {
       ....
       ....
    }

  7. #7
    Esattamente. Chiaramente usando ibatis il dao sfrutta SqlMapClientDaoSupport e le mappe sql per fare le query sul db, usando altri framework o direttamente jdbc il dao ha un'altra implementazione, ma quello che conta per spring è che lui implementi l'interfaccia UserDetailService
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    100
    Purtroppo non riesco a venirne a capo....ho provato ad usare la tua soluzione ma niente.

    Col pezzo che avevo trovato io, ovvero:
    codice:
    <authentication-provider>
    <jdbc-user-service data-source-ref="dataSource" 
          authorities-by-username-query="select username,authority from users where username=?"/>
    </authentication-provider>
    non riesco perchè il dataSource che devo utilizzare si trova in un altro progetto e utilizzando solo l'id, mi dice che non esiste nessun dataSource (magari esiste il modo di vedere pezzi di xml in altri progetti..voi che dite? perchè evidemente il solo 'id' non basta..)

    Con la tua soluzione, ottengo una serie di errori che fanno tutti riferimento a questo:
    codice:
    nested exception is org.springframework.security.config.SecurityConfigurationException: No UserDetailsService registered.
    eppure la mia implementazione del Dao implementa "UserDetailsService".....

  9. #9
    Originariamente inviato da Otaking
    Purtroppo non riesco a venirne a capo....ho provato ad usare la tua soluzione ma niente.

    Col pezzo che avevo trovato io, ovvero:
    codice:
    <authentication-provider>
    <jdbc-user-service data-source-ref="dataSource" 
          authorities-by-username-query="select username,authority from users where username=?"/>
    </authentication-provider>
    non riesco perchè il dataSource che devo utilizzare si trova in un altro progetto e utilizzando solo l'id, mi dice che non esiste nessun dataSource (magari esiste il modo di vedere pezzi di xml in altri progetti..voi che dite? perchè evidemente il solo 'id' non basta..)

    Con la tua soluzione, ottengo una serie di errori che fanno tutti riferimento a questo:
    codice:
    nested exception is org.springframework.security.config.SecurityConfigurationException: No UserDetailsService registered.
    eppure la mia implementazione del Dao implementa "UserDetailsService".....
    Beh certo solo l'id non basta, quell'id deve corrispondere ad un bean di spring...lo stesso si dica per il dao che implementa UserDetailsService nella mia soluzione, deve essere definito come bean nel contesto di spring, spero tu sappia di cosa parlo altrimenti documentati un po su spring perchè ti mancano i mattoni fondamentali e non ci capiamo
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    100
    Originariamente inviato da unomichisiada
    Beh certo solo l'id non basta, quell'id deve corrispondere ad un bean di spring...lo stesso si dica per il dao che implementa UserDetailsService nella mia soluzione, deve essere definito come bean nel contesto di spring, spero tu sappia di cosa parlo altrimenti documentati un po su spring perchè ti mancano i mattoni fondamentali e non ci capiamo
    Credo di si....cioè....il progetto dove sto mettendo mano io, riguarda quasi solamente il front-end....quindi non ho le classi del dao, i file di spring, ecc...
    Dovrei quindi riprodurre nel mio progetto l'application context e relativi dao che utilizzo per l'utenza...giusto?

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.