Ich habe vor kurzem begonnen, eine JSF-Anwendung zu programmieren. Ich benutze ecplise neon mit maven3 und jetty Webserver für den schnellen Testeinsatz. Bis jetzt ist alles in Ordnung, aber jetzt wollte ich Apache Shiro ausprobieren, da es ein ziemlich cooler und guter Sicherheitsrahmen zu sein scheint.Konfigurieren der JTDS-Datenquelle für Apache Shiro
Jetzt, da ich Benutzer ms SQL Server verwende ich den JTDS Db-Treiber. Aber leider bin ich nicht in der Lage shiro Funktion zu erhalten, wegen der folgenden Fehler:
[WARNING] Failed startup of context [email protected]{/,[file:///E:/Dev/JSF/Lister/Lister/src/main/webapp/, jar:file:///C:/Users/Dethrall/.m2/repository/com/sun/faces/jsf-impl/2.2.2/jsf-impl-2.2.2.jar!/META-INF/resources],UNAVAILABLE}{file:///E:/Dev/JSF/Lister/Lister/src/main/webapp/} org.apache.shiro.config.ConfigurationException: Property 'database' does not exist for object of type net.sourceforge.jtds.jdbcx.JtdsDataSource.
Besonders interessant ist der Abschnitt „Property‚Datenbank‘existiert nicht ...“ So sah ich in dem nach javadoc und Es gibt tatsächlich keine Immobilien-Datenbank.
Das bringt uns zu meiner Frage. Wie soll ich eine jtds Datenquelle in der shiro.ini konfigurieren? Wenn jemand irgendwelche Vorschläge hat, würde es sehr geschätzt werden!
Leider btw verursachen Ich bin ein wenig überwältigt von all diesen neuen Sachen wie Maven, JSF, shiro, Steg und so weiter ...
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
</listener>
<filter>
<filter-name>ShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ShiroFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
</web-app>
pom.xml
...
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>${shiro.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId>
<version>${shiro.version}</version>
</dependency>
...
shiro.ini
[main]
#authc = org.apache.shiro.web.filter.authc.PassThruAuthenticationFilter
authc.loginUrl = /faces/login.xhtml
authc.successUrl = /faces/users.xhtml
logout.redirectUrl = /faces/users.xhtml
ds = net.sourceforge.jtds.jdbcx.JtdsDataSource
ds.serverName = localhost
ds.portNumber = 1434
ds.user = lister
ds.password = 1234
ds.database = Lister
sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher
jdbcRealm = org.apache.shiro.realm.jdbc.JdbcRealm
jdbcRealm.authenticationQuery = SELECT password FROM trs_sec_t_users WHERE username = ?
jdbcRealm.userRolesQuery = SELECT role FROM trs_sec_t_roles WHERE username = ?
#jdbcRealm.credentialsMatcher = $sha256Matcher
[users]
#admin = admin, ROLE_ADMIN
#root = 1234, ROLE_ADMIN
[roles]
#ROLE_ADMIN = *
[urls]
/faces/users.xhtml = authc