Problema della password del database quando si utilizza GIT per gestire il progetto che utilizza Spring per avviare l'origine dati

4

Uso Spring Framework per codificare il mio servizio Web, utilizzando Dependency injection per iniettare un bean DataSource nel bean DAO che verrà utilizzato dal servizio Web. Ho tutte le proprietà del database (Url, Password, Username, le cose che non voglio che le persone vedano) scritte nell'XML XML di DataSource !

Ho git setup per impegnare il mio intero progetto .... Compreso il mio XML DataSource Bean che ha la mia password scritta in testo normale. Ho pensato di usare il .gitignore, ma l'XML Bean è un componente cruciale nel mio progetto di servizio Web e non dovrebbe essere ignorato. Ma non voglio che il mondo veda la mia password.

Come faccio a impegnare i miei file bean senza mostrare la mia password mondiale.

    
posta Louis Hong 29.06.2014 - 23:18
fonte

1 risposta

6

Tutto ciò che inserisci in Spring XML è statico e compilato nel file binario. Se ci sono alcune informazioni che possono cambiare, è sempre una buona idea esternalizzarlo in un file di proprietà. Spring può leggere il file delle proprietà e quindi utilizzare i valori come input per i suoi bean.

È necessario utilizzare un concetto chiamato segnaposto di proprietà per iniettare queste proprietà. Innanzitutto, crea un file di proprietà, ad esempio MyApp.properties e posizionalo in una directory conosciuta, ad esempio /settings/MyApp . Il contenuto del file sarà nel formato:

databaseUsername=USER
databasePassword=PWD
property3=value3
property4=value4
...

Nel tuo XML Spring, aggiungi il seguente tag:

<context:property-placeholder location="file:///settings/MyApp/MyApp.properties"/>

Ora puoi semplicemente usare queste proprietà esterne nei tuoi oggetti primaverili:

<bean id="dataSource" class="...">
    <property name="username" value="${databaseUsername}">
    <property name="password" value="${databasePassword}">
</bean

Ora puoi verificare in sicurezza il tuo XML Spring (ma non MyApp.properties ) e assicurarti che altri utenti abbiano il proprio MyApp.properties nel percorso configurato.

Ci sono altre cose che puoi fare per rendere la ricerca di file di proprietà più dinamica. Vedi questo link per maggiori dettagli:

6 suggerimenti per la gestione File di proprietà con Spring

    
risposta data 29.06.2014 - 23:43
fonte

Leggi altre domande sui tag