2016-09-08 2 views
0

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 

Antwort

1

Versuchen Sie in Ihrer shiro.ini: 'ds.database Name = Lister'

Verwandte Themen