1

我白天是一名 python 开发人员,但我也有一些 java 经验(主要是使用 struts)。在工作中,我收到了一个要安装的 grails 应用程序,这没问题,但是该应用程序的所有者没有提供任何凭据,并且该应用程序加载到了登录页面。

我解压缩了战争,但我认为数据库配置已打包到某个地方的 jar 中,因为我似乎找不到任何连接 URL。在我部署应用程序后创建了一个 h2 db 文件,所以我想知道:

如何像平常使用 SQLite 或 mysql 客户端一样连接到数据库、浏览表并创建管理员用户以便我可以登录?

4

3 回答 3

1

进行反编译。您不仅需要用户和密码,还需要至少一个数据库JDBC URL。这可能包括 DBMS 名称、主机、端口、数据库名称 - 取决于 Java 驱动程序的具体情况。然后像往常一样在 Python 或其他东西中或使用DBVisualizer进行连接。

但是如果数据库在 H2/hsql 中(URL 类似于jdbc:h2:mem:XXX),那么您就有问题了:它是一个 Java 进程内 DBMS。为了获得对它的外部访问,您需要更改反编译的代码,编译并将其打包回来并添加一些内容。希望不是你的情况。

在 hsql/H2 案例中的另一种方法是查找和反编译数据库引导代码 - 因为它是一个进程内数据库,它应该在每次应用程序启动时填充,所以应该有一个代码创建该超级用户。

于 2012-10-14T19:44:06.567 回答
0

在 Grails 中,数据库配置(包括身份验证设置)在一个名为的文件中声明,Datasource.groovy然后将其编译到 WAR 中。您需要源代码来查找 H2 DB 的用户名和密码。

于 2012-10-13T13:42:19.003 回答
-1

我不知道 Python 是否可以连接到 java 数据源,但它可能是一个解决方案。

另一种解决方案可能是从 Grails 端提供一些 REST Web 服务,以使 python 程序能够访问数据库。这是我喜欢的方式,也是我经常选择的方式。

顺便说一句,您在 conf 目录 (grails-app/conf/DataSource.groovy) 中配置了 Grails 使用的数据库,您将获得可以转换为经典 URL 的数据库的 jdbc URL。例如: jdbc:mysql://localhost/my_app 指的是本地主机上的数据库 my_app 和 mysql 数据库的默认端口。

随时询问您是否需要更多信息。

干杯

于 2012-10-13T12:08:23.697 回答