【发布时间】:2019-12-27 03:52:27
【问题描述】:
我正在运行在 JBoss EAP 7.1 上的 EAR 中的 EJB-JAR 中实现 REST 服务。
该服务的不安全版本运行良好,但即使添加基本的 HTTP 身份验证也是一项挑战,因为在 EJB-JAR 中我发现无法指定任何所需的 web.xml 条目,例如 <auth-method>BASIC</auth-method>
所以我的问题是:
如何配置 JAX-RS 以在 EJB-JAR 中使用 HTTP 身份验证?
附加信息:
-
为了让事情更简单,我使用默认的 ManagementRealm 像这样
<security-domain name="my-security-domain" cache-type="default"> <authentication> <login-module code="Remoting" flag="optional"> <module-option name="password-stacking" value="useFirstPass"/> </login-module> <login-module code="RealmDirect" flag="required"> <module-option name="realm" value="ManagementRealm"/> </login-module> </authentication> </security-domain> -
在 EJB-jar 中:
@Stateless @Path("/my-rest") @SecurityDomain(value = "my-security-domain") @DenyAll public class MyRestStatelessBean { @PUT @RolesAllowed("admin") @Path("/doAdminStuff") public void doAdminStuff() { // Implementation } }
【问题讨论】:
-
一个 EAR 文件可以包含一个或多个 WAR 文件,并且 WAR 文件应该能够有一个
web.xml可以指定它的安全要求。你是怎么打包的? -
我将我的 ejb jar 打包到 ear 文件中,并且我想避免将我的 REST bean 从 ejb-jar 移动到 WAR。这就是问题所在。
标签: jax-rs wildfly basic-authentication jboss-eap-7