• 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...


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

    업무 시스템든 웹 서비스든 접근권한 관리 모듈은 필수 구성요소이다. 스프링 시큐리티는 인증과 접근권한 체크를 할 수 있는 클래스가 개발되어 있다. 그러나 실 도메인에서 사용하는 인증 방법과 접근권한체크 방법은 다양하기 때문에 가장 일반적인 방법으로 처리 할 수 있도록 구현되어있다. 여기서는 스프링시큐리티에 개발된 클래스들을 기반으로 사용자관리, 접근권한 관리를 할 수 있는 서비스를...