如何在Arquillian功能测试中创建Payara用户帐户?

时间:2018-01-31 13:24:24

标签: java java-ee jboss-arquillian payara graphene2

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

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

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

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

我正在使用Payara 4.1.2.174。

1 个答案:

答案 0 :(得分:0)

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

documentation of the Arquillian GlassFish embedded container描述您可以使用属性instanceRoot指向整个域目录,或configurationXml只指向该目录中的domain.xml

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