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

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


我没有找到有关Payara RESTful或类似的用于Payara管理任务的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自动完成中弹出的所有内容)。


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

我正在使用Payara 4.1.2.174。

最佳答案

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

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

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

关于java - 如何在Arquillian功能测试中创建Payara用户帐户?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48543277/

10-10 01:53