1

証明書で保護されたアプリケーションをテストしようとしているため、サーブレットの前の HTTP セッションに証明書を配置するフィルターがあります。

これは GWT アプリケーションなので、gwt-syncproxyと Arquillian を使用しています。

@RunWith(Arquillian.class)
public class TestLiveLoginService {

    @Deployment
    public static WebArchive createDeployment() {
        return ShrinkWrap
                .create(WebArchive.class, "launcher.war")
                .addPackages(true, "com.mycompany.launcher")
                .addAsResource("resources/logback.xml")
                .addAsWebInfResource("resources/web.xml")
                .merge(ShrinkWrap
                        .create(ExplodedImporter.class, "resources.war")
                        .importDirectory("war/launcher")
                        .as(WebArchive.class));
    }

    private static LoginService rpcService;

    @Before
    @RunAsClient
    public void initClient() {
        rpcService = (LoginService) SyncProxy.newProxyInstance(
                LoginService.class, "http://localhost/launcher/", "login");
    }

    @Test
    @RunAsClient
    public void testLogin1() throws ServerException {
        User result = rpcService.login(new User.Builder(
                "user", "password").build());
        assertTrue((result != null));
    }

}

testLogin1()サーバーコードが通常のログインフローでセッションにある証明書を探しているため、私のテストは失敗しています。

Arquillian テストで HTTP セッションを更新することは可能ですか? この場合、私のinitClient()方法で、セッションにモック証明書を簡単に追加できます。

4

0 に答える 0