我在使用Keycloak部署应用时遇到问题:
部署错误: 由于以下原因,部署“vfs:/// D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo-ear.ear”出错s):java.lang.ClassNotFoundException:来自BaseClassLoader的javax.faces.component.UIComponent @ 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”出错 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"
}
}
我从redme文件添加到Keycloak
配置到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(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
中的mainapp
错误pom.xml
其他模块中的错误如下:
生命周期配置未涵盖插件执行:
我还尝试将dependency
添加到keycloak-parent
,但仍然无法使用
如何解决此问题?
答案 0 :(得分:2)
Keycloak由一个服务器(Keycloak服务器)和一个保护您的应用程序并处理身份验证的适配器组成。如果要在与Keycloak服务器相同的服务器中部署自己的应用程序,则需要将Keycloak适配器添加到服务器中(如前所述)(请参阅Keycloak adapters)。最新版本的Keycloak作为预配置的Wildfly 9提供,因此可能适合您的应用程序。还有适用于其他容器或纯HTML客户端的适配器。
根据您的问题,我猜您正在尝试将Keycloak示例修改为您自己的应用程序。 Keycloak示例使用共享父POM,因此可能希望将其拆分为单个POM以获得更好的概述。或者,根据您的专业知识,您可以从具有JAAS安全性的基本JEE应用程序开始,并将其部署到Keycloak服务器(安装了JBoss / Wildfly适配器)。参见例如Oracle's JEE 6 Tutorial
答案 1 :(得分:0)
为了让您的应用使用keycloak,您必须在服务器上安装适配器。以下是详细信息: https://docs.jboss.org/keycloak/docs/1.1.0.Final/userguide/html/ch08.html
您可以在WEB-INF /上部署keycloak子系统或keycloak.json文件。两种情况都需要安装适配器 此致