我正在尝试在我的应用程序中使用keycloak。我在docker上运行keycloak,并使用wildfly 20作为应用服务器。我使用这个scrypt来启动keycloak。
version: '3'
services:
keycloak:
image: quay.io/keycloak/keycloak:10.0.1
container_name: keycloak
environment:
DB_VENDOR: postgres
DB_ADDR: host.docker.internal
DB_USER: keycloak
DB_PASSWORD: test
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: test
ports:
- 8079:8080
- 8443:8443
然后我将这个代码片段添加到我的standalone.xml中
<subsystem xmlns="urn:jboss:domain:keycloak:1.1">
<secure-deployment name="pato-ejb.war">
<realm>pato</realm>
<auth-server-url>http://localhost:8079/auth</auth-server-url>
<ssl-required>external</ssl-required>
<resource>pato</resource>
<credential name="secret">password</credential>
</secure-deployment>
</subsystem>
和安全设置到我的web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name></web-resource-name>
<description>Protects all resources</description>
<url-pattern>*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>admin</role-name>
</security-role>
<login-config>
<auth-method>KEYCLOAK</auth-method>
<realm-name>pato</realm-name>
</login-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>user/</web-resource-name>
<url-pattern>/user/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>user</role-name>
</security-role>
最后,我在jboss folder with jars中添加了密钥罩jars
当我启动standalone.bat时,我立即得到了这个错误
11:41:14,220 ERROR [org.jboss.as.controller] (Controller Boot Thread)
OPVDX001: Validation error in standalone.xml -----------------------------------
|
| 521: </subsystem>
| 522: <subsystem xmlns="urn:jboss:domain:weld:4.0"/>
| 523: <subsystem xmlns="urn:jboss:domain:keycloak:1.1">
| ^^^^ Unexpected element '{urn:jboss:domain:keycloak:1.1}subsystem'
|
| 524: <secure-deployment name="pato-ejb.war">
| 525: <realm>pato</realm>
| 526: <auth-server-url>http://localhost:8079/auth</auth-server-url>
|
| The primary underlying error message was:
| > ParseError at [row,col]:[523,9]
| > Message: Unexpected element '{urn:jboss:domain:keycloak:1.1}subsystem'
|
|-------------------------------------------------------------------------------
11:41:14,223 ERROR [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0055: Caught exception during boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: WFLYCTL0085: Failed to parse configuration
at org.jboss.as.controller@12.0.1.Final//org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:143)
at org.jboss.as.server@12.0.1.Final//org.jboss.as.server.ServerService.boot(ServerService.java:395)
at org.jboss.as.controller@12.0.1.Final//org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:416)
at java.base/java.lang.Thread.run(Thread.java:834)
11:41:14,227 FATAL [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0056: Server boot has failed in an unrecoverable manner; exiting. See previous messages for details.
发布于 2021-01-04 02:05:25
在Keycloak Downloads中,您将看到“客户端适配器”部分。这是一个解压到Wildfly目录中的.zip or.tar.gz文件。虽然有了所需的.jar
文件,但缺少所有的module.xml
文件。打开当前版本,您将看到所需的文件。此外,还有一些安装文件可以对您的standalone.xml
进行更改以启用Keycloak。当前的层次结构如下所示:
.
├── bin
│ ├── adapter-elytron-install.cli
│ ├── adapter-elytron-install-offline.cli
│ ├── adapter-install.cli
│ └── adapter-install-offline.cli
├── docs
│ └── licenses-keycloak
│ ├── licenses.css
│ ├── licenses.html
│ ├── licenses.xml
│ ├── licenses.xsl
│ ├── org.keycloak,keycloak-adapter-core,12.0.1,Apache Software License 2.0.txt
│ ├── org.keycloak,keycloak-adapter-spi,12.0.1,Apache Software License 2.0.txt
│ ├── org.keycloak,keycloak-authz-client,12.0.1,Apache Software License 2.0.txt
│ ├── org.keycloak,keycloak-common,12.0.1,Apache Software License 2.0.txt
│ ├── org.keycloak,keycloak-core,12.0.1,Apache Software License 2.0.txt
│ ├── org.keycloak,keycloak-jboss-adapter-core,12.0.1,Apache Software License 2.0.txt
│ ├── org.keycloak,keycloak-undertow-adapter,12.0.1,Apache Software License 2.0.txt
│ ├── org.keycloak,keycloak-undertow-adapter-spi,12.0.1,Apache Software License 2.0.txt
│ ├── org.keycloak,keycloak-wildfly-adapter,12.0.1,Apache Software License 2.0.txt
│ ├── org.keycloak,keycloak-wildfly-elytron-oidc-adapter,12.0.1,Apache Software License 2.0.txt
│ └── org.keycloak,keycloak-wildfly-subsystem,12.0.1,Apache Software License 2.0.txt
└── modules
└── system
└── add-ons
└── keycloak
└── org
└── keycloak
├── keycloak-adapter-core
│ └── main
│ ├── keycloak-adapter-core-12.0.1.jar
│ └── module.xml
├── keycloak-adapter-spi
│ └── main
│ ├── keycloak-adapter-spi-12.0.1.jar
│ ├── keycloak-undertow-adapter-spi-12.0.1.jar
│ └── module.xml
├── keycloak-adapter-subsystem
│ └── main
│ └── module.xml
├── keycloak-authz-client
│ └── main
│ ├── keycloak-authz-client-12.0.1.jar
│ └── module.xml
├── keycloak-common
│ └── main
│ ├── keycloak-common-12.0.1.jar
│ └── module.xml
├── keycloak-core
│ └── main
│ ├── keycloak-core-12.0.1.jar
│ └── module.xml
├── keycloak-jboss-adapter-core
│ └── main
│ ├── keycloak-jboss-adapter-core-12.0.1.jar
│ └── module.xml
├── keycloak-undertow-adapter
│ └── main
│ ├── keycloak-undertow-adapter-12.0.1.jar
│ └── module.xml
├── keycloak-wildfly-adapter
│ └── main
│ ├── keycloak-wildfly-adapter-12.0.1.jar
│ └── module.xml
├── keycloak-wildfly-elytron-oidc-adapter
│ └── main
│ ├── keycloak-wildfly-elytron-oidc-adapter-12.0.1.jar
│ └── module.xml
└── keycloak-wildfly-subsystem
└── main
├── keycloak-wildfly-subsystem-12.0.1.jar
└── module.xml
我鼓励您在Docker之外的本地环境中安装Keycloak,以了解这一切是如何结合在一起的。These steps将引导您完成整个过程,但基本上是将文件解压缩到Wildfly主目录,并在bin
目录中运行适当的脚本。
https://stackoverflow.com/questions/65549164
复制相似问题