2

ホームコントローラーをテストしようとしています

@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":"/"}]">

何か不足していますか?

4

1 に答える 1