Gibt es eine Möglichkeit, das Datenbankkennwort zur Laufzeit anzufordern, anstatt es (verschlüsselt oder nicht) in die Datei hibernate.cfg.xml zu schreiben?Hibernate-Datenbankkennwort zur Laufzeit
Antwort
Fast jede Konfigurationsoption in Hibernate verfügt über eine entsprechende Methode für das zu konfigurierende Objekt. In Wirklichkeit ist die Konfiguration nur eine Möglichkeit, XML an die Objekte zu binden, die gerade eingerichtet werden. Weitere Informationen finden Sie in diesem Artikel: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html
Das heißt, Sie müssen das Kennwort beim Start abholen. Das kann der schwierigste Teil des Problems sein. Nachdem Sie das Passwort erfasst haben, senden Sie es an die entsprechende Unterkunft.
Wenn Sie einen Java EE-Anwendungsserver verwenden, ist es normalerweise die beste Methode, einen JNDI-Lookup zu verwenden, um die Datenbankverbindung zu erhalten, anstatt einen Treibermanager zu verwenden. Auf diese Weise ist die Person, die den JNDI-Verbindungspool einrichtet, die einzige, die das Passwort kennen muss, und es ist in der Regel in der Admin-Konsole verschlüsselt, so dass es sicher ist.
Ich denke, wenn Sie Programmatic Instanziierung der Hibernate-Konfiguration verwenden, können Sie es aus der Konfigurationsdatei initialisieren, die kein Kennwort enthält, dann legen Sie die zusätzliche Eigenschaft für die Datenbankverbindung auf dem Konfigurationsobjekt, das Sie instanziieren Rufen Sie BuildConfguration() auf.
- 1. MasterPageFile zur Laufzeit wechseln
- 2. Einstellung "Modal" zur Laufzeit
- 3. create Tframes zur Laufzeit:
- 4. Apportieren Kontextkonfiguration zur Laufzeit
- 5. ändern Etikettenposition zur Laufzeit
- 6. Übersteuerung zur Laufzeit __setattr__
- 7. Speichern xamlx zur Laufzeit
- 8. iPhone Ansichten zur Laufzeit?
- 9. Aufrufmethode zur Laufzeit
- 10. Android: Anfrage zur Laufzeit
- 11. Animation zur Laufzeit hinzufügen
- 12. Ninject zur Laufzeit verbindlich
- 13. Vtable-Änderungen zur Laufzeit
- 14. Bean zur Laufzeit ersetzen
- 15. Klassenimplementierung zur Laufzeit (Java)
- 16. JPA-Kaskadenoptionen zur Laufzeit
- 17. QRadioButtons zur Laufzeit hinzufügen
- 18. Schriftart ändern zur Laufzeit
- 19. Änderung TopMost zur Laufzeit
- 20. Setze Klasseneigenschaft zur Laufzeit
- 21. Empty ControlCollection zur Laufzeit
- 22. Java-Compiler zur Laufzeit
- 23. Hibernate-Konfiguration zur Laufzeit
- 24. Anruf zur Delegierung zur Laufzeit weiterleiten
- 25. Zeile zur Laufzeit zur Tabelle hinzufügen
- 26. Java-Annotationen zur Laufzeit hinzufügen
- 27. Laden von Jars zur Laufzeit
- 28. Repeaters ItemTemplate zur Laufzeit umschalten
- 29. Programmatisch registrieren HttpModules zur Laufzeit
- 30. Erstellen Sie usercontrol zur Laufzeit
Autsch! das ist eine interessante Frage. Kann ich den Kontext fragen, in dem Sie Hibernate verwenden? Ist das eine eigenständige Anwendung oder eine Web-App? Wenn Sie eine Web-App verwenden, verwenden Sie außerdem Spring? –
An diesem Punkt ist es eine eigenständige Anwendung, aber ich möchte den Schutz auf der Datenbankseite, nicht in der Anwendung, da die Datenbank einen besseren Schutz als meine Anwendung bietet. Außerdem, warum sollte ich versuchen, eine Verschlüsselung einzubauen, die bereits auf der Datenbankseite vorhanden ist? Ich habe nichts gegen falsche Leute, die meine Bewerbung haben, ich kümmere mich nur um falsche Leute, die Zugang zu meiner Datenbank haben. – FinalArt2005