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

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


  • Cloud Native Java 따라하기 4(스프링 클라우드 설정 클라이언트)

    스프링 클라우드 설정 클라이언트 스프링 클라우드 기반 서비스는 실행할 때 src/main/resources/bootstrap.properties(또는 yml) 파일을 찾는다. 애플리케이션 이름은 spring.application.name 속성에 지정한다. bootstrap 파일은 application.properties 파일보다 먼저 로딩된다. 클라우드 설정 서버는 클라이언트의 spring.application.name 에 설정된 이름으로 설정파일을 찾는다. 여기서는 config-client 으로 설정했다. 설정서버에 저장된 application.properties 파일은 모든 설정 클라이언트에서 참조할 수 있다. 클라이언트...


  • Cloud Native Java 따라하기 3(스프링 클라우드 설정 서버)

    스프링 클라우드 설정 서버로 중앙집중형 설정 사용하기 설정정보를 외부 파일로 분리해서 사용하는 방법을 앞선 포스트에서 했었는데 몇 가지 남은 문제점들이 있다. 애플리케이션의 설정 정보가 변경되면 애플리케이션을 재시작 해야한다. 어떤 설정 정보가 변경됐는지 확인할 방법이 없고, 이전 상태로 원복할 수 없다. 설정이 분산되어 어디에서 어떤 설정 정보를 변경해야 하는지 파악하기 어렵다....


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

    ViewVoter 보완 앞선 포스트에서는 요청한 View가 사용자가 가진 View Type SecuredObject 중에 존재하는지 찾아봐서 접근허가 여부를 결정짓는 ViewVoter를 구현하였다. 이 구현체에 NPE을 대비한 코드를 조금 더 추가해서 완성도를 높혔다. package cothe.security.access.vote; public class ViewVoter implements AccessDecisionVoter<Object> { private RoleProvider roleProvider; public ViewVoter(RoleProvider roleProvider) { this.roleProvider = roleProvider; } @Override public...


  • Cloud Native Java 따라하기 2

    앞선 Cloud Native Java 포스트에서는 스프링 프레임워크에서 어떻게 설정 값을들 객체와 매핑하여 사용할 수 있는지 설정했다. 스프링부트에서는 어떻게 쓸 수 있는지 알아보자. 스프링 부트 방식의 설정 설정정보의 우선순위 명령행 인자 java:comp/env 에 있는 JNDI 속성 System.getProperties() 로 읽어오는 속성 운영체제의 환경 변수 jar 외부에 존재하는 application.properties 파일이나 application.yml 파일에 정의된...