@RolesAllowed で保護された @Stateless EJB があり、GlassFish コンテナが埋め込まれている JUnit-4 テストを試みています。私が克服した最新のハードルは、永続化ユニットとセキュリティ レルムの GlassFish ドメイン構成です。
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(EJBContainer.MODULES, new File("build/classes"));
properties.put("org.glassfish.ejb.embedded.glassfish.configuration.file",
"test-resource/domain.xml");
ec = javax.ejb.embeddable.EJBContainer.createEJBContainer(properties);
組み込みの GlassFish が起動し、アプリケーションがデプロイされ、@RolesAllowed アノテーションを付けて EJB メソッドを呼び出すまで、すべてが期待どおりに機能しているように見えます。
javax.ejb.AccessLocalException: Client not authorized for this invocation
何らかの理由で、コンテナーの役割を設定してセキュリティ チェックをパスする方法がわかりません。私は何が欠けていますか?