gpt4 book ai didi

java - JDBCRealm 正确配置但未成功连接

转载 作者:行者123 更新时间:2023-11-28 23:41:03 28 4
gpt4 key购买 nike

我在互联网上彻底搜索后没有发现类似情况后发布这个问题。我正在尝试使用 JDBCRealm 在开发环境中使用 Tomat 7.0.42 和 MariaDB 5.5 部署的简单测试 Web 应用程序中对用户进行身份验证。我已按照 Tomcat's How-To 中说明的所有步骤进行操作这就是我所拥有的:

我的应用的部署描述符:

<error-page>
<error-code>403</error-code>
<location>/WEB-INF/jsp/desautorizado.jsp</location>
</error-page>

<security-constraint>
<web-resource-collection>
<web-resource-name>Acciones</web-resource-name>
<url-pattern>/actions/*</url-pattern>
</web-resource-collection>

<web-resource-collection>
<web-resource-name>Paginas</web-resource-name>
<url-pattern>/sel_tipo_tabla.jsp</url-pattern>
</web-resource-collection>

<auth-constraint>
<role-name>estandar</role-name>
</auth-constraint>

<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

<security-role>
<role-name>estandar</role-name>
</security-role>

<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/WEB-INF/jsp/login.jsp</form-login-page>
<form-error-page>/WEB-INF/jsp/desautorizado.jsp</form-error-page>
</form-login-config>
</login-config>

Tomcat 的 conf/server.xml:

<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Context docBase="MyAppStruts" path="/MyAppStruts" reloadable="true" source="org.eclipse.jst.jee.server:MyAppStruts">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="org.mariadb.jdbc.Driver"
connectionURL="jdbc:mariadb://localhost:3306/desa"
connectionName="ruben"
connectionPassword="acceso"
userTable="usuarios"
userNameCol="usuario"
userCredCol="password"
userRoleTable="roles"
roleNameCol="rol" />
</Realm>
</Context>
</Host>
</Engine>

如果我改用 UserDatabaseRealm(Tomcat 默认使用 conf/tomcat-users.xml 文件),它会完美运行。但是,如果我使用 JDBCRealm,我总是会被重定向到错误页面,即使我在数据库中引入了现有的用户/密码也是如此。

我忘了说我正在使用 Eclipse 进行部署,所以所有内容都与 $CATALINA_BASE 和NOT $CATALINA_HOME 相关。在开发环境中,$CATALINA_BASE 指向 $(WORKSPACE_DIR)/.metadata/.plugins/org.eclipse.wst.server.core/tmp0。因此,MariaDB 驱动程序 jar 文件位于 $(WORKSPACE_DIR)/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/lib/mariadb-java-client.jar 中,公钥证书位于 $(WORKSPACE_DIR )/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/hogar.keystore(没问题)。

通过查看日志,我注意到每当我重置服务器时(仅重置,甚至在向我的应用程序启动第一个请求之前),都会写入以下行:

127.0.0.1 - - [27/Oct/2013:21:29:32 +0100] "GET/HTTP/1.1"404 961

Eclipse 的控制台选项卡中没有显示任何错误或异常。我猜是Tomcat无法与数据库建立连接,但是,为什么?

最佳答案

我只是因为我的用户在数据库中的角色值与部署描述符中的 的值不匹配。

关于java - JDBCRealm 正确配置但未成功连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19623952/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com