1

我正在使用 Arquillian 在嵌入式 Payara 上部署 Java EE WAR,以使用 Graphene 进行功能测试。一切正常。

但是,我想知道是否可以测试@RolesAllowed受保护的 RESTful 方法的用户身份验证。Afaik 无法在 Java EE 服务器和 GlassFish 和 Payara 中创建用户,这是在 Web 管理 UI 中完成的:

  • 我没有找到任何关于 Payara RESTful 或类似 API 用于 Payara 管理任务的信息。
  • 无人机驱动程序似乎没有在文件系统上创建任何内容,因此无法访问该asadmin命令。
  • 根据sudo netstat -tupln | grep javaPayara 嵌入式进程仅打开端口 8181 (HTTP) 和 8182(无法在浏览器中打开)。
  • 我的问题类似于How to test login with Arquillian - Java EE 7,其答案不起作用,因为CommandRunner没有注入,并且评论说接口已经改变——不管这意味着什么。
  • Embedded Glassfish、安全性和 Arquillian 问题中的方法不起作用,因为不清楚Server使用了哪个类,并且没有可用的类与所有方法名称匹配(我尝试了 NetBeans 自动完成中弹出的所有方法)。

我知道用远程实例替换嵌入式的可能性,但这不是问题的一部分。

我正在使用 Payara 4.1.2.174。

4

1 回答 1

0

配置嵌入式 GlassFish/Payara 的首选方法是首先交互配置独立的 Payara Server 实例(使用管理控制台或 asadmin 命令),将配置从域 (domain1) 复制到测试资源,然后将 Arquillian 容器指向配置.

Arquillian GlassFish 嵌入式容器的文档描述了您可以使用该属性instanceRoot指向整个域目录或configurationXml仅指向该domain.xml目录中的目录。

事实上,您最后一个链接 ( https://stackoverflow.com/a/24967309/784594 ) 中的答案准确地解释了这种情况并提供了分步指南。您不应该使用任何 Server 类来配置服务器,您可以跳过该步骤 - 如果您使用基本 HTTP 身份验证保护您的 REST 端点,您只需要在请求标头中发送用户和密码。

于 2018-02-02T10:26:24.943 回答