私はサービスを持っています:
@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());
}