1
저는 Spring MVC 애플리케이션에 대한 통합 테스트를 작성하려고했습니다. 우리는 인증을 위해 oAuth2를 사용하고 있습니다.Java Spring MVC 통합 테스트 생성 OAuth2 Principal
봄이 경우 우리는 클라이언트에 다시 전송해야하는 엔티티를 결정하는 데 사용하는 Principal
인스턴스를 제공합니다. 우리 컨트롤러에는 엔드 포인트가 있습니다 :
@RequestMapping("/bookings")
public @ResponseBody ResponseEntity<List<ThirdPartyBooking>> getBookings(Principal principal) {
OAuth2Authentication auth = (OAuth2Authentication) principal;
OAuth2AuthenticationDetails authDetails = (OAuthAuthenticationDetails) auth.getDetails();
// Extract stuff from the details...
}
이제 우리는 인증 된 사용자에 대해서만 예약을 보내고 싶습니다. 시험에 대한 코드 아래 찾을 수 있습니다
는 는@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {ThirdPartyBookingServiceConfiguration.class})
@WebAppConfiguration
@Component
public abstract class RepositoryTestBase {
@Resource
private WebApplicationContext context;
private MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.webAppContextSetup(context).build();
}
@Test
public void shouldOnlyReturnUserBookings() throws Exception {
MockHttpServletResponse result = mockMvc.perform(MockMvcRequestBuilders.get("/bookings").principal(???)).andReturn().getResponse();
// Validate the response
}
}
는
는 어떻게 OAuth2Authentication
???
에 삽입합니다 ?
를이 내가 찾던 정확히 무엇을이었다. 그것은 크게 도움이되었습니다. 감사! – irundaia