Frage

Ich habe ein Spring-Roo-Projekt eingerichtet, das mit Eclipse-Link für meine JPA-Persistenzschicht verwendet wird, und ich habe (Benutzerrollen, Benutzer) Tabelle erstellt, um meine Sicherheit zu verwalten. Ich habe mich gefragt, ob jemand einen Bereich mit einem Spring -Projekt eingerichtet hat, um Apache Shiro so zu konfigurieren, dass die Datenbanktabellen für Benutzername und Passwort -Looks verwendet werden und Benutzername und Passwörter gespeichert werden?

Derzeit habe ich eine Shiro.ini -Datei, die mit ein paar Testrollen und (Benutzernamen, Passwort) Kombinationen verwendet wird, aber ich versuche herauszufinden, wie ich stattdessen meine Web.xml -Datei mit den richtigen Filtern konfigurieren kann. Nachfolgend finden Sie meine Web.xml -Datei und die aktuellen Filter gesetzt.

<filter>
    <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
    <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>
 <!-- all declarations in shiro.ini file -->
<filter>
    <filter-name>ShiroFilter</filter-name>
    <filter-class>org.apache.shiro.web.servlet.IniShiroFilter</filter-class>
</filter>


<filter-mapping>
    <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>ShiroFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Hat jemand ein Beispiel für einen JDBC -Bereich, der (postgres) mit Apache Shiro und Frühling verwendet?

War es hilfreich?

Lösung

Bitte sehen Sie Shiros Frühlingsdokumentation Für die korrekte Web.xml -Konfiguration. Es ist anders als das von Ihnen gezeigte Web.xml -Beispiel.

Da die XML -Konfiguration von Spring etwas leistungsfähiger ist als Shiros INI, werden Frühlingsbenutzer aufgefordert, anstelle von Shiro Ini die volle Federkonfiguration zu verwenden. Siehe Abschnitt "Webanwendungen" dieser Seite, um ein Beispiel für die nur Frühlingskonfiguration für Shiro anzuzeigen.

Im Teil der Dokumentation von 'ApplicationContext.xml' werden Sie eine Dokumentation dieser Seite sehen

<bean id="myRealm" class="...">
...
</bean>

Teil der XML -Konfiguration. Ersetzen Sie das durch Ihre JDBCREALM Bean Definition. Sie können Ihren Frühling-konfigurierten DataSource wie erwartet injizieren:

<bean id="myRealm" class="org.apache.shiro.realm.jdbc.JdbcRealm">
    <property name="dataSource" ref="springConfiguredDataSource"/>
    ...
</bean>  

Sie können die Standard -SQL Der Quellcode von Jdbcrealm.

Sie können diese Abfragen bei Bedarf konfigurieren.

Beachten Sie, dass das JDBCREALM für Ihre Bedürfnisse nicht ausreicht, wenn Ihr Datenmodell komplex genug ist, es ist einfach, Shiro's zu erweitern Autorisierung von REALM Führen Sie die Benutzer-/Rollen-/Berechtigungs -Lookup mit der von Ihnen bevorzugten DataSource -API (JPA, Hibernate usw.) aus.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top