본문 바로가기
반응형

Development/Java72

java.util.Date 쓰다 삽질한 내용.... 최근에 시간 관련 Data 를 가지고 삽질을 해서 간단히 적어본다. 상황은 이렇다. 테이블에 특정 Data 를 저장 하고 있었는데 colum 에 언제나 그렇듯 생성 날짜, 시간 형태의 컬럼이 존재하고 있었다. Timestamp type 이었고 Data 는 잘 insert 가 되는 상황이었다. 그런데 이상하게 나는 분명 UTC 기준으로 Data 가 insert 될거라 생각을 했는데 그게 아니었다. Local 기준으로 Data 가 들어가고 있었다. 그러다 보니 이 Data를 사용하는 곳에서 예상치 못한 오류가 발생했다. 123456@Testpublic void jodaTime(){ DateTime dateTime = new DateTime(DateTimeZone.UTC); System.out.println(.. 2019. 1. 25.
[SpringBoot] Properties 우선순위 Spring Boot 에서 Properties 를 설정하는 방법에 대해서 알아보자. 우선 Properties 파일을 3개를 만들어 보았다.src/main/resources 하위에 application.properties, application-server1.properties, application-server2.properties 이렇게 3개의 파일을 만들었다. application.properties1234application-name: my applicatoinspring.output.ansi.enabled=alwayslogging.level.org.springframework.web=debugserver.port=9000cs application-server1.properties1server.po.. 2018. 6. 7.
[SpringSecurity]Spring Reference 수정 백기선님의 Spring Boot 레퍼런스 동영상을 보다 보니 레퍼런스도 한번 쭉~~ 살펴볼 필요가 있겠다 싶은 생각이 들었다. 그럼 뭘 볼까? 라고 생각 하다가 Spring Security 를 보기로 결정 했다. 기간을 가지고 보는것은 아니고 그냥 처음부터 차근차근 정리 하면서 읽어보자라고 생각을 했다. 그런데 보다보니 약간 이상한게 있었다. 위 내용은 레퍼런스에 나오는 5.2장 HttpSecurity 부분이다. 이상하다고 생각한 부분은 "However ~~~~~" 단락이다. 대체 뭘 어떻게 한다는 의미인지 알수가 없었다. 대체 커스텀 로그인 페이지를 만들때 뭘 조심하라는건지. Url이 RESTFul 한데 뭘 어쩌라는건지. 그리고 정보 유출을 막기위해 Spring security 를 사용하는것이 뭐가 분.. 2018. 4. 21.
[SpringBoot] @Mock, @MockBean 차이가 뭘까? 테스트 케이스를 작성하다가 좀 헷갈리는게 있었다. @Mock, @MockBean 차이가 뭐지??? 쓰긴 하고 있는데 알고 써야 하지 않을까라는 의문이 들었다. 그래서 찾아봤다. 먼저 Mock 객체를 선언할 때에는 2가지 방법이 있다. 1. 첫번째 : mock() 을 이용해서 선언 1 2 3 4 5 6 7 8 9 10 11 12 @RunWith(MockitoJUnitRunner.class) public class UserServiceTest { @InjectMocks private UserService userService; UserRepository userRepository = mock(UserRepository.class); @Test public void findByEmail_test(){ when.. 2018. 4. 10.
[SpringBoot]Spring Boot Oauth login With Facebook 삽질기!!! https://spring.io/guides/tutorials/spring-boot-oauth2/ 위 사이트에 가면 Spring boot 를 이용해서 Oauth를 이용해서 Login 을 할 수 있는 샘플을 만들어볼 수 있다. 그래서 나도 해봤는데.. 그게 삽질의 시작이었다...Tutorial 자체는 그렇게 어렵지 않게 따라 할 수 있다. 따라하기가 어렵다면 Git에서 소스를 내려 받아서 해볼 수도 있다. 이제 이 Tutorial 을 진행하기 위해서 Facebook Developer 사이트에서 앱을 등록을 해야 한다. 그래야 Client Id 하고 Client Secret을 받을 수 있다. https://developers.facebook.com 위 사이트에 들어 가면 본인의 Facebook 계정으로 앱을.. 2018. 3. 4.
작성중-[SpringBoot] ClassPathResource 의 getFile() 사용시 FileNotFoundException 발생 ClassPathResource resource = new ClassPathResource(resourcePath);File file = resource.getFile(); 위와 같이 코드를 작성해서 로컬에서 실행했을 때에 아무 문제 없이 동작을 하던 것이 war File 로 배포한 후에 동작을 시켰을 때에 에러가 발생을 했다. class path resource [img/header.jpg] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/home/xxxxadmin/lib/xxxxxxxxx.war!/WEB-INF/classes!/img/header.jpg java.io.File.. 2018. 1. 12.
[Spring-Data-JPA]Auditing을 추가해보자 테이블을 설계할때 항상 빠지지 않고 들어있는 컬럼이 있다. 바로 생성일자, 수정일자, 생성자, 수정자 컬럼이다. 거의 모든 테이블에 디폴트로 들어있는 컬럼이고 상당히 중요한(?) 정보이다. 그렇다 보니 도메인에도 항상 똑같은 컬럼이 존재하게 된다. 그런데 spring-data-jpa에 재미난 기능이 있다. 바로 생성일자, 수정일자, 생성자, 수정자 컬럼에 값을 자동으로 넣어주는 기능이다. Audit : 감시하다. 바로 spring-data-jpa 에서는 audit 기능을 제공하고 있다. 방법은 여러가지가 있다. 각 도메인에 @PrePersist, @PreUpdate 등을 붙여서 할수도 있다. 그런데 이게 단점이 각각의 도메인에 같은 컬럼이 정의되어있다는 것은 변하지 않는다는 것이다. 모든 도메인에 똑같이.. 2017. 12. 13.
[Spring Security] Max Session 적용하기 기존 소스에 동시 로그인을 제어하기 위해서 Maxsession 설정을 넣어보았다. 1234567891011121314151617181920212223@Configurationpublic class ResourceSecurityConfiguration extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .csrf().disable() .authorizeRequests() .antMatchers("/", "/login/**","/browser/**", "/error/**").permitAll() .antMatchers("/private/**").auth.. 2017. 11. 20.
[Spring Boot]RabbitMQ 연동하기 Spring Boot에서 RabbitMQ 를 연결을 해보자.원래는 AWS에 있는 Ubuntu 서버에 설치를 한후 연결을 하려고 했다. 그런데 설치까지는 문제가 없이 잘 진행 됐는데 이상하게 SpringBoot에서 연결 하려고 하면 Connection Refuse가 계속 나와 몇일을 보냈다. port를 안연것도 아니고, management 콘솔은 15672포트로 잘만 접속 되는데 5672포트로 연결 하려고만 하면 안됐다. 오늘까지 하다가 안되면 GG 치려고 했다. 실제로 GG 치고 로컬에 깔고 진행을 했다.그래서 정상 작동하는거 보고 혹시나 해서 다시 AWS에 있는 Rabbit MQ에 접속을 시도해 봤는데 됐다... 왜 되는거지???? --_--;; 대체 이것때문에 쌩쑈를 몇일을 했는데. 어쨌든 되니깐 좋.. 2017. 10. 27.
[Spring Boot]Rest API 호출을 위한 Client Code 공부하면서 만든 Oauth Server에 대한 테스트를 Postman으로는 했는데 실제로 Client Code가 필요하게 되었다. 2017/09/04 - [Development/Java] - [Spring Boot]Oauth server 적용해보기 테스트만 할 경우에는 Postman만 써도 상관이 없지만 실제 Client 가 호출을 하려면 code가 필요하다. 그래서 여기저기 구글링을 해가면서 찾아봤다. 우선 Oauth Token을 발급 받기위한 코드가 필요하다. 12345678910111213141516171819202122232425262728public String getOAuth2Token(String username, String password) { final String CLIENT_ID =.. 2017. 9. 14.
[Spring Boot]Oauth server 적용해보기 Spring Boot Project에 OauthServer를 설정해보았다. 소스는 https://github.com/blusky10/study_spring 의 simple-spring-oauth 브랜치를 다운로드 받으면 된다. Client 는 private이라는 api에 접근하기 위해서 oauthserver 에 token 발급 요청을 한다. 발급된 token을 가지고 private이라는 api에 접근한다. (Client 는 미리 등록되어있다고 가정한다. 따라서 Client를 Oauth서버에 등록하는 과정은 생략된다.) 1. 먼저 ResourceServer를 설정한다. ResourceServer는 Resource Owner의 정보를 가지고 있는 서버를 의미한다. 1 2 3 4 5 6 7 8 9 10 11 .. 2017. 9. 4.
[OAuth] Oauth의 간략한 흐름. Oauth 2.0 에 대해서 공부를 하다가 용어에 대한 명확한 이해가 필요해서 정리를 했다. Access Token : 보호된 리소스에 일정 기간동안 접근할 수 있는 권한을 가진 문자열- Scope : Token 소유자가 접근할수 있는 보호된 리소스 셋 Client : Resource를 이용하려고 하는 Web 이나 App. Resource Sever : 실제 정보를 가지고 있는 대상. Resource Owner : Resource 에 대한 소유자. Access Token 을 얻는 절차는 아래처럼 설명할 수 있다. Resource Owner Client Resource Server 1. Client 에게 정보 요청 2. Resource Server 에 있는 Resource Owner의 정보를 접근 할수 있.. 2017. 7. 4.
728x90
반응형