• 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 파일에 정의된...


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

    앞선 포스트에서는 SpringSecurity에서 인증을 할 수 있도록 관련 클래스를 정의하고 테스트를 해보았다. 이번 포스트는 사용자가 가지고 있는 Role 을 기반으로 접근 권한이 있는지 없는지 확인하는 Voter 를 만들어 테스트할 것이다. 사용자 오브젝트가 권한을 가지도록 변경 User Class에 roles 필드 추가 package cothe.security.core.domain; @Entity @Getter @NoArgsConstructor @AllArgsConstructor @Builder public class User...