Hallo zusammen,
ich habe eine Web-Anwendung auf einem Tomcat 7 mit Postgres DB laufen und wollte eigentlich nur die (funktionierende) JDBCRealm Auth. auf eine DataSourceRealm Auth. umstellen.
Obwohl ich meiner Meinung nach ordentlich der Apache Doko gefolgt bin, bekomme ich eine NameNotFoundException:
Da ich die server.xml möglichst unangetastet lassen möchte, habe ich nun folgende
context.xml
[XML]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<ResourceLink name="jdbc/OW2_Fach_quer2DB"
global="jdbc/OW2_Fach_quer2DB"
type="javax.sql.DataSource" />
<Resource name="jdbc/OW2_Fach_quer2DB"
type="javax.sql.DataSource"
auth="Container"
driverClassName="org.postgresql.Driver"
url="jdbcostgresql://localhost:6432/ow2_fach"
username="user"
password="passw"
validationQuery="select 1"
maxActive="10"
maxIdle="2"/>
<Realm className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/OW2_Fach_quer2DB"
userTable="quer2.benutzer"
userNameCol="account"
userCredCol="passwort"
userRoleTable="quer2.login"
roleNameCol="rolle"
digest="SHA-256" />
<!-- CDI Res -->
<Resource name="BeanManager" auth="Container"
type="javax.enterprise.inject.spi.BeanManager"
factory="org.jboss.weld.resources.ManagerObjectFactory" />
</Context>[/XML]
meine web.xml:
[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_3_0.xsd"
version="3.0">
<description>Querbauwerke 2</description>
<!-- Persistence -->
<persistence-context-ref>
<persistence-context-ref-name>persistence/em</persistence-context-ref-name>
<persistence-unit-name>quer2</persistence-unit-name>
</persistence-context-ref>
<!-- Listeners -->
<listener>
<!-- Weld Listener Chapter -->
<listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>
<!-- Resource References -->
<!-- CDI Weld benötigte Res. -->
<resource-ref>
<description>Quer2DBConnection</description>
<res-ref-name>jdbc/OW2_Fach_quer2DB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-env-ref>
<resource-env-ref-name>BeanManager</resource-env-ref-name>
<resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type>
</resource-env-ref>
<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>*.xhtml</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<!-- Error Page -->
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/Error.xhtml</location>
</error-page>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<!-- Security Regelungen für Unterverzeichnisse -->
<security-constraint>
<web-resource-collection>
<web-resource-name>all</web-resource-name>
<url-pattern>/pages/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>q2admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>all</web-resource-name>
<url-pattern>/pages/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>q2admin</role-name>
</auth-constraint>
</security-constraint>
<login-config><!-- DIGEST / FORM -->
<auth-method>FORM</auth-method>
<realm-name>ApplicationRealm</realm-name>
<form-login-config>
<form-login-page>/Login.xhtml</form-login-page>
<form-error-page>/LoginError.xhtml</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>q2admin</role-name>
</security-role>
</web-app>[/XML]
Ich würde mich freuen, wenn Euch da etwas auffällt, woran es hapern könnte.
MfG
Chrissel
ich habe eine Web-Anwendung auf einem Tomcat 7 mit Postgres DB laufen und wollte eigentlich nur die (funktionierende) JDBCRealm Auth. auf eine DataSourceRealm Auth. umstellen.
Obwohl ich meiner Meinung nach ordentlich der Apache Doko gefolgt bin, bekomme ich eine NameNotFoundException:
Code:
Exception performing authentication
javax.naming.NameNotFoundException: Name [OW2_Fach_quer2DB] is not bound in this Context. Unable to find [OW2_Fach_quer2DB].
Da ich die server.xml möglichst unangetastet lassen möchte, habe ich nun folgende
context.xml
[XML]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<ResourceLink name="jdbc/OW2_Fach_quer2DB"
global="jdbc/OW2_Fach_quer2DB"
type="javax.sql.DataSource" />
<Resource name="jdbc/OW2_Fach_quer2DB"
type="javax.sql.DataSource"
auth="Container"
driverClassName="org.postgresql.Driver"
url="jdbcostgresql://localhost:6432/ow2_fach"
username="user"
password="passw"
validationQuery="select 1"
maxActive="10"
maxIdle="2"/>
<Realm className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/OW2_Fach_quer2DB"
userTable="quer2.benutzer"
userNameCol="account"
userCredCol="passwort"
userRoleTable="quer2.login"
roleNameCol="rolle"
digest="SHA-256" />
<!-- CDI Res -->
<Resource name="BeanManager" auth="Container"
type="javax.enterprise.inject.spi.BeanManager"
factory="org.jboss.weld.resources.ManagerObjectFactory" />
</Context>[/XML]
meine web.xml:
[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_3_0.xsd"
version="3.0">
<description>Querbauwerke 2</description>
<!-- Persistence -->
<persistence-context-ref>
<persistence-context-ref-name>persistence/em</persistence-context-ref-name>
<persistence-unit-name>quer2</persistence-unit-name>
</persistence-context-ref>
<!-- Listeners -->
<listener>
<!-- Weld Listener Chapter -->
<listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>
<!-- Resource References -->
<!-- CDI Weld benötigte Res. -->
<resource-ref>
<description>Quer2DBConnection</description>
<res-ref-name>jdbc/OW2_Fach_quer2DB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-env-ref>
<resource-env-ref-name>BeanManager</resource-env-ref-name>
<resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type>
</resource-env-ref>
<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>*.xhtml</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<!-- Error Page -->
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/Error.xhtml</location>
</error-page>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<!-- Security Regelungen für Unterverzeichnisse -->
<security-constraint>
<web-resource-collection>
<web-resource-name>all</web-resource-name>
<url-pattern>/pages/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>q2admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>all</web-resource-name>
<url-pattern>/pages/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>q2admin</role-name>
</auth-constraint>
</security-constraint>
<login-config><!-- DIGEST / FORM -->
<auth-method>FORM</auth-method>
<realm-name>ApplicationRealm</realm-name>
<form-login-config>
<form-login-page>/Login.xhtml</form-login-page>
<form-error-page>/LoginError.xhtml</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>q2admin</role-name>
</security-role>
</web-app>[/XML]
Ich würde mich freuen, wenn Euch da etwas auffällt, woran es hapern könnte.
MfG
Chrissel
Zuletzt bearbeitet: