使用openejb application-composer测试基于角色的(cxf)jaxrs服务

时间:2017-01-25 11:44:17

标签: jax-rs cxf openejb tomee-7

我有服务:

@RolesAllowed({ROLE_ADMIN, ROLE_USER})
@Stateless
@Path("test")
public class TestServiceImpl implements TestService

使用以下

进行TestNG测试
@Listeners({ApplicationComposerListener.class})
@EnableServices("jax-rs")
public class BaseTest {

    @EJB
    private TestService rs;

    @Module
    @Classes(cdi = true, value = {...})
    public WebApp myWebApplication() {
        return new WebApp()
                .contextRoot("myRoot")
                .addServlet("", ApplicationConfig.class.getName());
    }

...
    MyResponse res = WebClient
                .create("http://localhost:4204/myRoot")
                .accept(MediaType.APPLICATION_JSON)
                .type(MediaType.TEXT_PLAIN)
                .path("test/...")
                .query("param", someParam)
                .get(MyResponse.class);

只要我从服务中删除了RolesAllowed,但只有当它(因为它应该)允许访问时才能正常工作

由于我没有测试安全性而是测试端到端功能,有没有办法模拟相关的安全上下文而不了解完整的身份验证机制?

也许像

@Module
@Classes(cdi = true, value = {...})
public WebApp myWebApplication() {
    return new WebApp()
            .contextRoot("myRoot")
  

.withRoles({ROLE_ADMIN,ROLE_USER})

            .addServlet("", ApplicationConfig.class.getName());
}

0 个答案:

没有答案