无法访问Keycloak 18.0.2嵌入式h2数据库文件

4
我正在尝试使用DBeaver访问keycloak\data\h2\keycloakdb.mv。但是出现了“用户名或密码错误”的提示。非常感谢能给予任何帮助。
我已经尝试了以下几种方法:
用户名:sa 密码:(没有输入)
用户名:sa 密码:sa
用户名:keycloak 密码:(没有输入)
用户名:keycloak 密码:keycloak
2个回答

6

如果有人需要查找,嵌入式数据库的开发模式凭据可以在DatabasePropertyMappers类中找到。

目前似乎是:

username: sa
password: password

https://github.com/keycloak/keycloak/blob/f0988a62b8f5ca211bf4aaab4f5aa11120115451/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/configuration/mappers/DatabasePropertyMappers.java

private static Optional<String> resolveUsername(Optional<String> value, ConfigSourceInterceptorContext context) {
    if (isDevModeDatabase(context)) {
        return of("sa");
    }
    
    return Database.getDatabaseKind(value.get()).isEmpty() ? value : null;
}
    
private static Optional<String> resolvePassword(Optional<String> value, ConfigSourceInterceptorContext context) {
    if (isDevModeDatabase(context)) {
        return of("password");
    }
    
    return Database.getDatabaseKind(value.get()).isEmpty() ? value : null;
}

请强调以下要点 - 这可能会节省数小时的时间: 一旦您运行 dev-* DB,keycloak 将不会 使用在 keycloak.conf 中设置的 db-username 和 db-password 属性。DatabasePropertyMappers.java 将根据您使用的 keycloak 版本将其设置为硬编码字符串。 - jham

1

针对 Quarkus 发行版

您可以在 keycloak.conf 文件中检查默认配置。在您的 keycloak 目录中搜索 keycloak.conf 文件。与数据库相关的属性将类似于以下内容。

db=dev-mem
db-username = sa
db-password = keycloak

对于Wildfly分发版

您可以在standalone.xmldomain.xml中查找h2数据库的用户名和密码。

datasources子系统下查找名为java:jboss/datasources/KeycloakDS的数据源。例如:

     <datasources>
       ​<drivers>
         ​<driver name="h2" module="com.h2database.h2">
           ​<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
         ​</driver>
       ​</drivers>
       ...
       <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true">
           <driver>h2</driver>
           <connection-url>jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE</connection-url>
           <security>
               <user-name>sa</user-name>
               <password>?</password>
           </security>
       </datasource>
        ...
     </datasources> ```



你正在使用 dev-file 数据库吗? - Abhijeet
对于 Quarkus 发行版来说,它是默认数据库。 - Abhijeet
我正在尝试访问Keycloak生成的默认h2数据库文件。 - Kiran
@Kiran 请尝试使用用户名sa和密码keycloak - Abhijeet
相同。我得到了错误的用户名或密码。 - Kiran
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接