ホームコントローラーをテストしようとしています
@RequestMapping("/")
@ResponseBody
String home() {
return "Hello World!";
}
ユーザー名として「user」を使用し、デフォルトでパスワードとしてテストする春のセキュリティを使用していますが、@PreAuthorizeが機能していません
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@PreAuthorize("hasRole('ADMIN')")
public class HomeControllerTest {
@Autowired
private TestRestTemplate restTemplate;
@Test
@WithMockUser(username = "user", password = "test", roles = "ADMIN")
public void home() throws Exception {
String body = this.restTemplate.getForObject("/", String.class);
assertThat(body).isEqualTo("Hello World!");
}
}
結果
期待される結果:
<"[Hello World!]">
実結果:
<"{"timestamp":1501100448216,"status":401,"error":"Unauthorized","message":"このリソースにアクセスするには完全な認証が必要です","path":"/"}]">
何か不足していますか?