spring

Spring기반 REST API - 5

Dec 10, 2019

ch5. REST API 보안 적용

Account 도메인 추가

@ElementCollection(fetch = FetchType.EAGER)
@Enumerated(EnumType.STRING)
private Set<AccountRole> roles;
@ManyToOne
Account manager;

스프링 시큐리티

 <dependency>
    <groupId>org.springframework.security.oauth.boot</groupId>
    <artifactId>spring-security-oauth2-autoconfigure</artifactId>
    <version>2.1.0.RELEASE</version>
 </dependency>

예외 테스트 (3가지 방법)

@Test(expected = UsernameNotFoundException.class)
public void findByUsernameFail() {
    String username = "random@email.com";
    accountService.loadUserByUsername(username);
}
@Test
public void findByUsernameFail() {
    String username = "random@email.com";
    try{
        accountService.loadUserByUsername(username);
        fail("supposed to be failed");
    } catch (UsernameNotFoundException e) {
        assertThat(e.getMessage().contains(username));
    }
}
@Test
public void findByUsernameFail() {
    // Expected
    String username = "random@email.com";
    expectedException.expect(UsernameNotFoundException.class);
    expectedException.expectMessage(Matchers.containsString(username));

    // When
    accountService.loadUserByUsername(username);
}

스프링 시큐리티 기본 설정