2

私の Jersey 2 ベースの REST アプリケーションでは、認証をチェックするためにスプリング セキュリティ フィルター チェーンを追加しました。そのセキュリティチェーンを追加しようとすると、ユニットテスト中を除いてすべてがうまく機能します(500エラーが発生します(コードポインタはサービスリソースメソッドに移動しません))。このチケットによると、JerseyTest にフィルター チェーンを追加することは、今では修正されているはずです。

しかし、私はまだそれを適切に行う方法を見つけていません。私の JerseySpringTest クラスは次のようになります。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:META-INF/applicationContext-test.xml", "classpath:META-INF/security-context.xml"})
@ActiveProfiles("unit-test")
@WebAppConfiguration
public abstract class JerseySpringTest {

private JerseyTest _jerseyTest;

public final WebTarget target(final String path) {
    return _jerseyTest.target(path);
}

@Before
public void setupJerseyTest() throws Exception {
    _jerseyTest.setUp();
}

@After
public void tearDownJerseyTest() throws Exception {
    _jerseyTest.tearDown();
}

@Autowired
public void setApplicationContext(final ApplicationContext context) {
    _jerseyTest = new JerseyTest() {
        @Override
        protected Application configure() {
            ResourceConfig application = JerseySpringTest.this.configure();
            application.register(CustormDelegatingFilterProxy.class);
            application.property("springSecurityFilterChain", "/services/*");
            application.property("contextConfig", context);
            return application;
        }

    };
}

protected abstract ResourceConfig configure();
}

どんな助けでも大歓迎です。

4

0 に答える 0