问题标签 [elytron]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
741 浏览

single-sign-on - 登录时未写入 JSESSIONIDSSO cookie

我目前有许多应用程序在 Wildfly 10 上运行,并使用带有 SSO 的 Picketbox 安全系统。我目前正在升级到 Wildfly 17 并已将安全配置转换为使用 Elytron 子系统,但在写入 SSO cookie 时遇到问题。我没有升级到 JEE8 安全 API。

正在迁移的应用程序之一(“app1”)非常简单,通过login-config. web.xml此应用程序正常工作:我获得了登录表单,提交了我的凭据,并且响应包括 JSESSIONIDSSO cookie。第二个应用程序(“app2”)的实现方式略有不同。它也使用login-config,但登录页面提交给自定义 servlet,该 servlet 以编程方式使用HttpServletRequest.login(username, password). 当我在此应用程序中提交我的凭据时,它们已正确验证,但没有写入 JSESSIONIDSSO cookie。

Wildfly 配置

(它最初是为 AD 设置的,但临时设置为从文件中读取用户以进行更简单的测试)

应用程序1

应用程序2

登录表单使用 Angular 发布到登录 servlet,如下所示:

Undertow 是否不会将 SSO 内容应用于以这种方式进行身份验证的请求,可能是因为我错过了过滤器链中设置它的位置?还是我做错了什么?

编辑 1: 我进行了更多测试以尝试缩小问题范围。
Wildfly 17 Elytron,发布到j_security_check:登录 OK,写入 JSESSIONIDSSO cookie。
Wildfly 17 Elytron,发布到自定义登录 servlet:登录正常,不写入 JSESSIONIDSSO cookie。
Wildfly 10 Legacy,发布到j_security_check:登录 OK,写入 JSESSIONIDSSO cookie。
Wildfly 10 Legacy,发布到自定义登录 servlet:登录 OK,写入 JSESSIONIDSSO cookie。

我创建了一个测试项目来演示这一点,其中包括 Wildfly 10 和 17 的配置文件。

0 投票
1 回答
124 浏览

java - 在 Wildfly 16 的应用程序中加载 pk12 文件

我有一个调用受证书保护的 rest api 的代码,并且该代码工作了一段时间没有问题,直到我将应用程序从 Wildfly 10 迁移到 Wildfly 16。

代码本身很简单,它创建 http 请求并设置自定义套接字工厂:`

`

一切似乎都很好,但是当我从 WF16 中运行此代码时,它会抛出

IOException:无法加载 .p12 密钥库:C:\Cert\cert.p12;构造 MAC 时出错:java.lang.SecurityException:JCE 无法验证提供者 BC;org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi.engineLoad::-1 java.security.KeyStore.load in KeyStore.java::1445

我检查了充气城堡库,但我在应用程序本身中没有它......如果有人知道问题可能是什么,我将不胜感激。

或者,我希望将此套接字工厂创建移动到容器本身,看起来像是专门为此设计的 Wildfly Elytron 子系统,这是个好主意吗?

0 投票
1 回答
931 浏览

wildfly - 如何为 elytron 生成掩码密码?


我想用掩码密码替换我在 wildfly-config.xml 中使用的明文密码,WildFly 18 似乎支持该密码。我尝试使用 elytron-tool 生成掩码密码:

然后我将哈希 ("2FVkvIpoGRstP19QEZ76qE") 转换为 base64 并添加到 wildfly-config.xml

但是它失败了:

所以看来我生成屏蔽密码的过程是错误的。您能建议任何可以生成有效屏蔽密码的工具/shell 命令吗?非常感谢

0 投票
1 回答
127 浏览

java - 验证抛出 java.security.InvalidKeyException: null

我正在尝试编写一个服务来处理用户密码哈希和验证。我正在使用 Wildfly Elytron 库并在 quarkus Web 服务的上下文中使用该服务。我遇到的问题是,当我尝试验证密码时,验证方法会抛出java.security.InvalidKeyException, 并显示一条null消息。我一直在使用库的单元测试(javatips.net)来作为我的实现的基础,据我所知,我已经正确实现了。由于该异常实际上没有消息,因此很难知道出了什么问题,而且谷歌搜索也不会产生太大的影响。有任何想法吗?

0 投票
3 回答
2526 浏览

java - 使用 Java 读取存储在 WildFly 的 Elytron 凭证存储中的密码?

我在 Wildfly 17.x 凭证存储中存储了几个应用程序密码。如何以编程方式从凭证存储访问存储的密码?

这就是创建凭证存储并将密码存储在其中的方式。

0 投票
1 回答
673 浏览

java - 关键经理可以引用 WildFly 中的凭证存储吗?

我创建了一个凭证存储并将应用程序密钥库密码保存在其中。计划是在 TLS keymanager 和 keystore 中使用密码别名。

所以,这就是我尝试过的。

上面一个带有明文的工作完美无缺,但是当试图替换凭证存储时它不起作用。

创建商店并存储密码。

在以下脚本中出现错误。

也尝试使用明文,同样的问题。

结果失败消息:

我错过了什么?

帮助表示赞赏!谢谢!

0 投票
1 回答
828 浏览

java - 定义 jboss-web.xml 安全域会导致我的 EJB 缺少依赖项

我有一个运行良好的 webapp(一个 .war,包含一个带有三个 EJB 的 .jar)。

我通过 jboss-cli 定义了一个 LDAP 安全域:

/subsystem=elytron/dir-context=pepDirContext:add(url="ldap://127.0.0.1:10389",principal="uid=admin,ou=system",credential-reference={clear-text="secret "})

/subsystem=elytron/ldap-realm=pepRealm:add(dir-context=pepDirContext,identity-mapping={search-base-dn="ou=Users,dc=jboss,dc=org",rdn-identifier=uid, user-password-mapper={from="userPassword"},attribute-mapping=[{filter-base-dn="ou=Roles,dc=jboss,dc=org",filter="(&(objectClass=groupOfNames) (member={1}))",from="cn",to="Roles"}]})

/subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles)

/subsystem=elytron/security-domain=pepSD:add(realms=[{realm=pepRealm,role-decoder=from-roles-attribute}],default-realm=pepRealm,permission-mapper=default-permission-mapper)

/subsystem=elytron/http-authentication-factory=pep-http-auth:add(http-server-mechanism-factory=global,security-domain=pepSD,mechanism-configurations=[{mechanism-name=BASIC,mechanism-realm -configurations=[{realm-name=pepRealm}]}]

/subsystem=undertow/application-security-domain=pepASD:add(http-authentication-factory=pep-http-auth)

/subsystem=undertow/application-security-domain=pepSD:add(http-authentication-factory=pep-http-auth)

注意:我已经决定将两个“应用程序安全域”作为测试的一部分,理想情况下我只想使用 pepASD。

现在,我将 WEB-INF/jboss-web.xml 文件添加到我的战争中:

当我部署它时,我得到:

14:48:31,347 错误 [org.jboss.as.controller.management-operation](DeploymentScanner-threads - 2)WFLYCTL0013:操作(“完全替换部署”)失败 - 地址:([]) - 失败描述: {
"WFLYCTL0412: 未安装的必需服务:" => ["jboss.security.security-domain.pepSD"],
"WFLYCTL0180: 缺少/不可用依赖项的服务" => [
"jboss.deployment.unit.\" frontend.war\".component.UsuarioEjb.CREATE 丢失 [jboss.security.security-domain.pepSD]",
"jboss.deployment.unit.\"frontend.war\".component.GerenciaEjb.CREATE 丢失 [jboss .security.security-domain.pepSD]"、
"jboss.deployment.unit.\"frontend.war\"。缺少 component.FlujoEjb.CREATE [jboss.security.security-domain.pEPSD]"

我错过了什么?

我在 Java 11 上使用 WildFly 18.0.0.1。

0 投票
1 回答
298 浏览

wildfly - 如果知道原始密码,是否可以更改 Wildfly 凭证存储的密码?

我在代码存储库中有一个凭据存储 temp.jceks,并为开发人员提供了默认应用程序密码。生成生产版本时,商店会添加到 Windows 安装程序中。安装时,我需要将商店密码更改为其他密码吗?我知道可以使用 keytool 更改 java 密钥库密码,所以类似的行,我希望也可以更改 wildfly 凭据存储密码,但我看不到使用以下这些信息的任何选项。

https://wildscribe.github.io/WildFly/11.0/subsystem/elytron/credential-store/index.html

https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.1/html/how_to_configure_server_security/securely_storing_credentials#credential_store

保护凭证存储密码的任何其他选项都会有所帮助。

谢谢!

0 投票
1 回答
551 浏览

spring - Thorntail - WildFly Elytron 安全远程连接获取身份验证失败:不支持服务器提供的任何机制

我已经使用 project-defaults.yml 在 thorntail 应用程序上配置了 WildFly Elytron 安全性。但是,应用程序无法调用或连接到远程安全 EJB

这是 Elytron 的 yaml 配置 - 我不确定这是否正确配置。

从客户端这就是我尝试连接到 EJB 的方式。

来自控制台的错误。

请协助解决这个问题,因为我不确定我接下来需要做什么。

0 投票
2 回答
284 浏览

jboss7.x - 将 PasswordCredential 添加到 elytron 密钥库的 Keytool 命令?

我正在运行 JBOSS EAP 7.3 服务器并尝试将私钥添加到 elytron 密钥库。以下作品:

$JBOSS_HOME/bin/jboss-cli.sh --connect --command=/subsystem=elytron/credential-store=keystore:add-alias(alias='keyalias', secret-value='password')

但这里的问题是密码在命令行上以纯文本形式显示。我尝试使用 keytool 命令手动添加密钥:

keytool -importpass -alias 'keyalias' -v -keystore $JBOSS_HOME/keystore.p12 -storetype pkcs12

然后提示我根据需要输入密钥库密码和密钥,但尝试在服务器中引用此密钥会导致以下错误:

{ "outcome" => "failed", "failure-description" => {"WFLYCTL0080: Failed services" => { Caused by: org.jboss.as.controller.OperationFailedException: WFLYELY00920: Credential alias 'keyalias' of credential type 'org.wildfly.security.credential.PasswordCredential' does not exist in the store [ \"WFLYELY00920: Credential alias 'keyalias' of credential type 'org.wildfly.security.credential.PasswordCredential' does not exist in the store\" ]"}}, "rolled-back" => true, "response-headers" => {"process-state" => "reload-required"} }

是否可以通过密钥库工具添加 elytron 密钥?或者是否有可能以一种明文值不会在命令行上公开的方式添加密钥?我是 JBOSS 的新手,很难找到关于这个特定主题的资源。谢谢