1

我在使用 Keycloak 部署应用程序时遇到问题:

部署错误:部署“vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo-ear.ear”由于\ 以下原因: java.lang.ClassNotFoundException: javax.faces.component.UIComponent from BaseClassLoader@6929c1c6{vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server /default/deploy/keycloak-demo-ear.ear}

或者这个:

部署错误:部署“vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo.ear”由于以下原因而出错(s): org.jboss.deployers.spi.DeploymentException: URL 文件:/D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo-ear.ear /keycloak-demo-web.war/ 部署失败

添加以下代码时出现错误web.xml

<login-config>
    <auth-method>KEYCLOAK</auth-method>
    <realm-name>demo</realm-name>
</login-config>

我已经从管理控制台创建keycloak.json,如:WEB-INF

{
  "realm": "demo",
  "realm-public-key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrVrCuTtArbgaZzL1hvh0xtL5mc7o0NqPVnYXkLvgcwiC3BjLGw1tGEGoJaXDuSaRllobm53JBhjx33UNv+5z/UMG4kytBWxheNVKnL6GgqlNabMaFfPLPCF8kAgKnsi79NMo+n6KnSY8YeUmec/p2vjO2NjsSAVcWEQMVhJ31LwIDAQAB",
  "auth-server-url": "http://localhost:8080/auth",
  "ssl-required": "external",
  "resource": "panel",
  "credentials": {
    "secret": "6c3fa646-f033-4864-8b87-604887ce8eec"
  }
}

我将Keycloak配置从 redme 文件添加到standalone/configuration/standalone.xml:

对于 WildFly 和 JBoss EAP 6.x

<extensions>
    <extension module="org.keycloak.keycloak-subsystem"/>
    ...
</extensions>

<profile>
    <subsystem xmlns="urn:jboss:domain:keycloak:1.0">
        <auth-server name="main-auth-server">
            <enabled>true</enabled>
            <web-context>auth</web-context>
        </auth-server>
    </subsystem>
    ...
</profile>

我正在使用这个密钥斗篷(keycloak-appliance-dist-all-1.1.0.Final)http://sourceforge.net/projects/keycloak/files/1.1.0.Final/keycloak-appliance-dist-all-1.1.0.Final.zip/download

我从包中成功部署了示例 keycloak 1.1.0,并希望在我的应用程序中使用 keycloak。我究竟做错了什么?

编辑:

我想我找到了导致问题的元素:

<parent>
    <artifactId>keycloak-parent</artifactId>
    <groupId>org.keycloak</groupId>
    <version>1.1.0.Final</version>
    <relativePath>../../../pom.xml</relativePath>
</parent>

当我parent从示例项目中删除它时,它停止工作

我的应用程序结构是

mainapp
... pom.xml
... module1 ... pom.xml
... module2 ... pom.xml
... module3 ... pom.xml

每个模块都parent必须mainapp

当我将父级添加keycloak到其他模块时,我在其他模块中mainapp pom.xml出现错误,parent例如:mainapppom.xml

生命周期配置未涵盖插件执行:

我也尝试添加dependencykeycloak-parent但 id 仍然不起作用

我该如何解决这个问题?

4

2 回答 2

2

Keycloak 由一个服务器(Keycloak 服务器)和一个保护您的应用程序并处理身份验证的适配器组成。如果您将自己的应用程序部署在与 Keycloak 服务器相同的服务器中,则需要将 Keycloak 适配器添加到服务器,如前所述(请参阅Keycloak 适配器)。最新版本的 Keycloak 作为预配置的 Wildfly 9 提供,因此可能适合您的应用程序。还有其他容器或纯 HTML 客户端的适配器。

根据您的问题,我猜您正在尝试将 Keycloak 示例修改为您自己的应用程序。Keycloak 示例使用共享的父 POM,因此它可能希望将其剥离为单个 POM 以获得更好的概览。或者,根据您的专业知识,您可以从具有 JAAS 安全性的基本 JEE 应用程序开始,并将其部署到 Keycloak 服务器(安装了 JBoss/Wildfly 适配器)。参见例如Oracle 的 JEE 6 教程

于 2015-09-25T12:34:31.743 回答
0

为了让您的应用程序使用 keycloak,您必须在服务器上安装适配器。以下是详细信息: https ://docs.jboss.org/keycloak/docs/1.1.0.Final/userguide/html/ch08.html

您可以在 WEB-INF/ 中部署 keycloak 子系统或 keycloak.json 文件。这两种情况你都必须安装适配器问候

于 2015-08-19T01:01:40.357 回答