问题标签 [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.
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 的配置文件。
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 子系统,这是个好主意吗?
wildfly - 如何为 elytron 生成掩码密码?
我想用掩码密码替换我在 wildfly-config.xml 中使用的明文密码,WildFly 18 似乎支持该密码。我尝试使用 elytron-tool 生成掩码密码:
然后我将哈希 ("2FVkvIpoGRstP19QEZ76qE") 转换为 base64 并添加到 wildfly-config.xml
但是它失败了:
所以看来我生成屏蔽密码的过程是错误的。您能建议任何可以生成有效屏蔽密码的工具/shell 命令吗?非常感谢
java - 验证抛出 java.security.InvalidKeyException: null
我正在尝试编写一个服务来处理用户密码哈希和验证。我正在使用 Wildfly Elytron 库并在 quarkus Web 服务的上下文中使用该服务。我遇到的问题是,当我尝试验证密码时,验证方法会抛出java.security.InvalidKeyException
, 并显示一条null
消息。我一直在使用库的单元测试(javatips.net)来作为我的实现的基础,据我所知,我已经正确实现了。由于该异常实际上没有消息,因此很难知道出了什么问题,而且谷歌搜索也不会产生太大的影响。有任何想法吗?
java - 使用 Java 读取存储在 WildFly 的 Elytron 凭证存储中的密码?
我在 Wildfly 17.x 凭证存储中存储了几个应用程序密码。如何以编程方式从凭证存储访问存储的密码?
这就是创建凭证存储并将密码存储在其中的方式。
java - 关键经理可以引用 WildFly 中的凭证存储吗?
我创建了一个凭证存储并将应用程序密钥库密码保存在其中。计划是在 TLS keymanager 和 keystore 中使用密码别名。
所以,这就是我尝试过的。
上面一个带有明文的工作完美无缺,但是当试图替换凭证存储时它不起作用。
创建商店并存储密码。
在以下脚本中出现错误。
也尝试使用明文,同样的问题。
结果失败消息:
我错过了什么?
帮助表示赞赏!谢谢!
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。
wildfly - 如果知道原始密码,是否可以更改 Wildfly 凭证存储的密码?
我在代码存储库中有一个凭据存储 temp.jceks,并为开发人员提供了默认应用程序密码。生成生产版本时,商店会添加到 Windows 安装程序中。安装时,我需要将商店密码更改为其他密码吗?我知道可以使用 keytool 更改 java 密钥库密码,所以类似的行,我希望也可以更改 wildfly 凭据存储密码,但我看不到使用以下这些信息的任何选项。
https://wildscribe.github.io/WildFly/11.0/subsystem/elytron/credential-store/index.html
保护凭证存储密码的任何其他选项都会有所帮助。
谢谢!
spring - Thorntail - WildFly Elytron 安全远程连接获取身份验证失败:不支持服务器提供的任何机制
我已经使用 project-defaults.yml 在 thorntail 应用程序上配置了 WildFly Elytron 安全性。但是,应用程序无法调用或连接到远程安全 EJB
这是 Elytron 的 yaml 配置 - 我不确定这是否正确配置。
从客户端这就是我尝试连接到 EJB 的方式。
来自控制台的错误。
请协助解决这个问题,因为我不确定我接下来需要做什么。
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 的新手,很难找到关于这个特定主题的资源。谢谢