• certbot renew 실패할 때 시도해볼 만한 것

    let’s encrypt는 https 를 무료로 사용할 수 있게 해주고 certbot은 설치를 간편하게 해준다. 단점이 있다면 3개월 마다 갱신을 해줘야 한다는 것. 하지만 이것 마저 crontab 같은 스케줄러를 이용해서 자동화 할 수 있기 때문에 크게 문제가 되지는 않는다. 그런데 나에게 닥친 진짜 문제는 renew 하는데 오류가 발생한다는 것이다. ImportError: No module...


  • git repo가 아닌 디렉토리를 remote repo와 병합하면서 git repo로 만들기

    리모트에 있는 git 서버에 repogitory가 있는데 이것과 git 리포지토리가 아닌 디렉토리를 병합해야 하는 경우에 어떻게 하는지 알아본다. 예를들면 이런 경우이다. A가 프로젝트를 만들고 틀을 짠뒤에 전체 소스를 하드카피를 해서 B에게 전달한다. 서로 각자 개발을 진행하다가 형상 관리가 필요해서 A가 본인 소스를 git repository로 만들고 remote에도 bare repository를 만들어서 upstream으로 사용한다....


  • Spring-boot가 아닌 프로젝트를 Spring-boot-test로 테스트하기

    Spring을 사용하는 라이브러리를 구현하고 spring-boot-test 로 테스트하고자 한다. 문제는 스프링부트 테스트를 만들어도 정상적으로 DI를 받을 수가 없다. 아래와 같이 컴포넌트를 만들고 테스트를 한번 만들어보자. package cothe.springboottestfornormalproject.sample; import org.springframework.stereotype.Component; @Component public class User { private String name; public User() { this.name = "default"; } public String getName() { return name; }...


  • Spring Security로 Security 서비스 구축하기 4

    계층구조 Role 우리가 정의한 Role은 부모 Role을 가지질 수 있는 계층적인 구조이다. 따라서 부모가 가지고 있는 Permission 이 그대로 상속되고, 권한 체크할 때 부모가 가진 Permission도 모두 검증해봐야 한다. 그러기 전에 먼저, JPA의 JpaRepository interface가 계층적인 구조에서 잘 동작하는지 검증해보자. RoleRepositoryTest.java package cothe.security.core.repositories; @RunWith(SpringRunner.class) @SpringBootTest public class RoleRepositoryTest { @Autowired...


  • Cloud Native Java 따라하기 5(설정서버에 보안적용)

    git 저장소에 HTTP 기본 인증과 같은 보안 처리가 되어 있으면 서버에 인증 정보가 있어야 접근이 가능하다. spring.cloud.config.server.git.username spring.cloud.config.server.git.passwaord 마찬가지로 서버 자체에 보안설정이 되어 있으면 클라이언트에 인증 정보가 있어야 접근이 가능하다. 서버 보안을 설정하는 가장 간단한 방법은 설정 서버에 스프링 시큐리티를 의존 관계로 추가하고, 클라이언트에서 인증 정보와 함께 요청하는 것이다. spring.security.user.name...