일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 도메인
- javaspring
- 스프링
- annotation
- DynamoDB
- awscli
- Route53
- AWS
- Springsecurity
- MockMvc
- 자바
- query
- 로드밸런서
- awscloud
- secondaryindex
- EmbeddedId
- IdClass
- Java
- 다이나모디비
- 개발
- markerinterface
- Spring
- 자바스프링
- 테스트코드
- partiql
- 스프링테스트
- testresttemplate
- compositekey
- filterexpression
- 오류
- Today
- Total
목록javaspring (3)
아장아장 개발 일기
구현 배경 및 목적 최근에 별도의 회원가입과 로그인없이 없는 프로젝트를 개발하게 되었다. 기존에 사용하던 로직과는 다르게 사용자를 Spring의 JSESSIONID로만 구분하여 GuestUser로 저장, 활용했다. (데모 수준의 서비스라 일정 시간동안만 저장한 데이터가 쌓이면 되고, 해당 데이터를 지속적으로 관리할 필요가 없었다.) JSESSIONID를 활용한 접속 데이터 구분 및 활용은 아래의 세가지 로직을 따른다. Spring의 SecurityContextHolder에서는 Anonymous User를 기본적으로 생성한다.(JSESSIONID 포함) 이렇게 생성된 SecurityContextHolder의 JSESSIONID를 활용하여, 접속자 정보를 GuestUser 테이블에 저장한다. api 호출시,..
MockMvc 테스트 기본 소스 @AutoConfigureMockMvc @SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.MOCK) @RunWith(SpringRunner.class) @ActiveProfiles("dev") public class TestControllerTest extends TestCase { @Autowired private MockMvc mockMvc; @AutoConfigurationMockMvc : mockMvc 의존성 주입을 위한 어노테이션이며, 해당 어노테이션이 없으면 MockMvc가 자동 의존성 주입되지 않고 nullPointException 발생. @ActiveProfiles(”dev”) : 프로젝트에 app..
mvc 구조로 이뤄진 프로젝트의 경우 mockMvc 템플릿을 사용해 테스트를 진행할 수 있습니다. mockMvc를 사용하기 전에 TestRestTemplate을 사용해 테스트를 시도했는데 spring security config때문에 로그인 페이지에서 302 에러가 표시되었습니다. 정확히 스프링 시큐리티의 httpSecurity configure의 loginform과 antMatcher로 권한 필터링하는 소스가 테스트하려는 소스로의 진입을 막는 것으로 파악했습니다. 이는 mockMvc 템플릿의 @WithMockUser, @WithUserDetails등의 어노테이션을 사용해 해결될 수 있습니다. 그렇다면 여기서 ‘TestRestTemplate을 @WithMockUser 혹은 @WithUserDetails와..