gpt4 book ai didi

java - 使用 Keycloak 的安全 JEE 应用程序具有 SessionContext.getCallerPrincipal() 匿名

转载 作者:行者123 更新时间:2023-11-30 02:13:30 28 4
gpt4 key购买 nike

我有一个使用 Keycloak 保护的 JEE 服务 (JaxRx),身份验证有效,但是当我想使用 @RolesAllowed 应用安全性时,我得到了 EJBAccessException

该服务部署在 Wildfly 11 中,并且关于文档,我使用 @SecurityDomain("keycloak") 和下一个配置文件 (jboss- ejb3.xml)。

<?xml version="1.0" encoding="UTF-8"?>
<jboss:jboss
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:jboss="http://www.jboss.com/xml/ns/javaee"
xmlns:s="urn:security:1.1"
version="3.1" impl-version="2.0">

<assembly-descriptor>
<s:security>
<ejb-name>*</ejb-name>
<s:security-domain>keycloak</s:security-domain>
</s:security>
</assembly-descriptor>
</jboss:jboss>

我在 Wildfly 中安装了 keycloak security-domain

我检查了一下,发现 SessionContext 没有用户,但 Web 上下文有用户。

enter image description here

如图所示,请求用户在 RequestContext 中被识别,但在 SessionContext(上下文)中不存在,它显示匿名而不是用户。

我的服务中可能缺少什么?

最佳答案

在这种情况下,我的 WEB-INF 文件夹中缺少 jboss-web.xml 文件。

我添加了一个名为 jboss-web.xml 的文件,其中包含以下内容,并且工作得非常顺利。

<?xml version="1.0" encoding="UTF-8"?>
<jboss>
<security-domain>keycloak</security-domain>
</jboss>

关于java - 使用 Keycloak 的安全 JEE 应用程序具有 SessionContext.getCallerPrincipal() 匿名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49366263/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com