Ich verwende Shiro, um die Authentifizierung für meinen CXF-Webdienst zu implementieren. Ich benutze ein jdbc-Realm und konfiguriere es mit Hilfe einer ini-Datei (unten angehängt). Die Authentifizierungsdaten bleiben in der gleichen Datenbank erhalten wie die anderen Daten, die ich brauche, aber für den Rest des Systems verwende ich eine Eigenschaftendatei (kann auch unten gefunden werden), um die Verbindungsinformation zu liefern.Shiro: Code-Duplizierung in der Datenquellenkonfiguration
Jetzt offensichtlich die Daten für die Datenquelle in beiden Fällen ist die gleiche, aber ich finde keinen Weg, um diese Code-Duplikation zu lösen. Hat jemand, der mehr Erfahrung mit der Entwicklung von Webapplikationen hat, eine Lösung? Ich könnte sowohl die Konfiguration von shiro als auch des restlichen Systems ändern, wenn es helfen würde.
Vielen Dank im Voraus,
Zakum
shiro.ini:
[main]
jdbcRealm = org.apache.shiro.realm.jdbc.JdbcRealm
jdbcRealm.permissionsLookupEnabled = true
jdbcRealm.authenticationQuery = SELECT password FROM users WHERE username = ?;
ds = org.postgresql.ds.PGSimpleDataSource
ds.user = postgres
ds.password = password
ds.databaseName = servicedb
ds.serverName = localhost
ds.portNumber = 5432
jdbcRealm.dataSource = $ds
securityManager.realms = $jdbcRealm
service.properties:
db. It looks like:
db.name = servicedb
db.user = postgres
db.password = password
db.url = //localhost:5432/
Ich fürchte, ich werde nicht in der Lage sein, Ihre Antwort zu überprüfen, weil ich nicht mehr an diesem Projekt arbeite. Ich werde meinen Nachfolger kontaktieren, um zu sehen, ob er daran interessiert ist, das auszuprobieren und darüber zu berichten. Davon abgesehen mag ich die Idee, den Frühling zu benutzen, nicht, weil wir ihn speziell für diesen Zweck einführen müssten, was ein wenig übertrieben zu sein scheint. – Zakum