일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- 플레이스테이션
- JavaScript
- bb
- 프라모델
- 크리에이터
- sd 건담
- spring boot
- 영상
- 한빛리더스
- 게임
- 플레이스테이션 4
- Spring
- creator
- SD
- 태그를 입력해 주세요.
- docker
- PS4
- 레고
- lego
- 자바
- 나는 리뷰어다
- 한빛미디어
- 오라일리
- 플레이
- GCP
- 구글
- 건담
- Java
- 알고리즘
- ubuntu
- Today
- 5
- Total
- 224,732
목록Development/Java (64)
Polpid's World
테이블을 설계할때 항상 빠지지 않고 들어있는 컬럼이 있다. 바로 생성일자, 수정일자, 생성자, 수정자 컬럼이다. 거의 모든 테이블에 디폴트로 들어있는 컬럼이고 상당히 중요한(?) 정보이다. 그렇다 보니 도메인에도 항상 똑같은 컬럼이 존재하게 된다. 그런데 spring-data-jpa에 재미난 기능이 있다. 바로 생성일자, 수정일자, 생성자, 수정자 컬럼에 값을 자동으로 넣어주는 기능이다. Audit : 감시하다. 바로 spring-data-jpa 에서는 audit 기능을 제공하고 있다. 방법은 여러가지가 있다. 각 도메인에 @PrePersist, @PreUpdate 등을 붙여서 할수도 있다. 그런데 이게 단점이 각각의 도메인에 같은 컬럼이 정의되어있다는 것은 변하지 않는다는 것이다. 모든 도메인에 똑같이..
기존 소스에 동시 로그인을 제어하기 위해서 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..
Spring Boot에서 RabbitMQ 를 연결을 해보자.원래는 AWS에 있는 Ubuntu 서버에 설치를 한후 연결을 하려고 했다. 그런데 설치까지는 문제가 없이 잘 진행 됐는데 이상하게 SpringBoot에서 연결 하려고 하면 Connection Refuse가 계속 나와 몇일을 보냈다. port를 안연것도 아니고, management 콘솔은 15672포트로 잘만 접속 되는데 5672포트로 연결 하려고만 하면 안됐다. 오늘까지 하다가 안되면 GG 치려고 했다. 실제로 GG 치고 로컬에 깔고 진행을 했다.그래서 정상 작동하는거 보고 혹시나 해서 다시 AWS에 있는 Rabbit MQ에 접속을 시도해 봤는데 됐다... 왜 되는거지???? --_--;; 대체 이것때문에 쌩쑈를 몇일을 했는데. 어쨌든 되니깐 좋..
공부하면서 만든 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 =..
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의 정보를 가지고 있는 서버를 의미한다. 1234567891011@Configuratio..
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의 정보를 접근 할수 있..
Spring Security 를 적용하는 내용을 처음부터 차근차근 정리를 해보려고 한다. 목표는 Spring Security 를 공부하면서 각각의 기능들을 적용해보는것이다. 진행하다보면 Spring Security 뿐만 아니라 다른 내용들도 점점 추가될것 같다. 다 만들고 나서는 git에 소스를 공유할 생각이다. ^^;; 언제가 될지는 잘 모르겠다. 환경 : java 1.8, Spring Boot 1.5.3 Release, Maria DB, JPA, gradle build.gradle12345678910111213141516171819202122232425262728293031323334buildscript { ext { springBootVersion = '1.5.3.RELEASE' } reposito..
테스트케이스를 만들어서 작업을 하면 소스코드가 수정될 경우 코드를 테스트 해보기가 참 수월하다. 그런데 이 테스트 케이스 작성하는게 생각보다 만만치는 않다. 실제 DB 를 읽어서 테스트를 해야 하는지. 아니면 Mock 객체를 정의를 해서 사용을 해야 하는지. 실제 DB 를 사용할 경우 저장된 data 가 변경이 되어서 구현했을 당시 테스트 케이스는 Pass였지만 나중에 빌드 시점에 테스트 케이스가 실행될 경우에 Fail 이 나면 어떻게 할것인지. 생각해보면 그냥 서비스 구현해서 화면 띄우고 버튼 눌러서 테스트 하는것이 더 편할지도 모른다는 생각이 들기도 한다. 작성할 때마나 서비스 테스트, repository테스트, 컨트롤러 테스트에 대해서 구글링 하면서 작성을 하다보니 뭔가 남는게 없는것 같아서 샘플을..
프로젝트 내부에는 설정파일들이 많이 있다. 대표적인 항목이 DB 접속 정보가 있다. 그런데 이 접속정보에는 ID, PASSWORD 가 항상 존재 한다. ID는 상관이 없지만 PASSWORD 정보가 파일 내부에 평문으로 적혀있으면 외부에 노출될 위험이 있다. 그래서 암호화를 해야 한다. Jasypt를 이용하면 이런 항목들을 쉽게 암호화 할 수 있다. 먼저 라이브러리를 다운로드 받는다. http://www.jasypt.org/download.html 사이트에 들어가보면 상단에 DOWNLOAD JASYPT 라는 링크가 있다. 그 걸 누르면 라이브러리를 다운로드 받을 수 있다. 이 글을 쓰는 시점의 버전은 1.9.2 이다. 다운로드 한다음 사용 방법은 간단하다. 압축을 푼후에 bin 폴더로 이동한다. 그리고 콘..