正如标题中所述,有没有一种方法可以在Thorntail WilFly服务器中添加应用程序用户,就像您在整个服务器发行版中使用“ add-user.sh -a”脚本一样?
我知道您可以为Thorntail提供外部配置文件,但这仅是用于指定用户位置似乎有些开销。
谢谢
答案 0 :(得分:3)
Thomas Herzog的回答从概念上讲非常好-我特别同意使用外部Keycloak保护应用程序的安全,并可能借助MicroProfile JWT。我只是提供一些要点,以防您决定不这样做。
您可以直接在project-defaults.yml
中定义用户,如下所示:
thorntail:
management:
security-realms:
ApplicationRealm:
in-memory-authentication:
users:
bob:
password: tacos!
in-memory-authorization:
users:
bob:
roles:
- admin
project-defaults.yml
文件不必不必在应用程序外部,您可以将其直接构建到应用程序中。通常,在您的源代码中,文件将位于src/main/resources
中,并且在构建后将其嵌入-thorntail.jar
中。当然,它可以是 外部的,如果这不是一次性原型或测试之外的其他东西,则像这样的敏感数据应该是外部的。
您还可以使用WildFly的.properties
文件:
thorntail:
management:
security-realms:
ApplicationRealm:
properties-authentication:
path: .../path/to/application-users.properties
properties-authorization:
path: .../path/to/application-roles.properties
答案 1 :(得分:1)
这取决于您需要什么用户? Thorntail创建独立的微服务,这与Wildfly服务器中的托管应用程序不同。
是的,但我从未使用过。
https://docs.thorntail.io/2.2.0.Final/#_management
https://docs.thorntail.io/2.2.0.Final/#_management_console
您可能能够在其中创建的用户不应该是持久的,因为没有像常规的独立flyfly-server安装那样习惯使用wildfly-server安装,而是全部打包在jar中。部署后,不再需要配置微服务,至少不需要这样。
我建议通过密钥斗篷使用外部用户管理,该密钥斗篷通过密钥斗篷集成在荆棘中。使用keycloak分数,您可以在web.xml中为端点定义安全约束。
https://docs.thorntail.io/2.2.0.Final/#_keycloak
另一种方法是使用为您的微服务提供JAAS支持的安全性部分。
https://docs.thorntail.io/2.2.0.Final/#_security
通过thorntail特定的project-defaults.yml配置文件完成配置,您可以在其中通过YAML配置分数。
一个尖尾分数类似于带有spring的spring boot start依赖关系,由此该分数提供了用于开发的API,并将实现和集成捆绑在一起。实际上,这部分是一个jboss模块,该模块在重新打包阶段被打包到独立的微服务中。
有关如何在thorntail中使用安全性的示例,请参见以下链接。您应该看看它们。
https://github.com/thorntail/thorntail-examples/tree/master/security
看一看 src / main / resources / projects-defaults.yml ,其中包含刺尾馏分的配置以及 pom.xml ,它定义了所用的馏分