이 전에 진행했던 JSP 기반의 프로젝트를 Springboot 프로젝트로 리팩토링하면서.. 해결해야 될 문제가 한 개 발생했다.실시간으로 로그를 불러와서 데이터를 원하는 형식에 맞게 정형화 시켜준 뒤, 클라이언트에게 전송하는 단순한 과정인데, 환경이나 요구사항이 까다로웠다. 환경Kali(Debian)에서 운영 중인 Springboot 기반 웹서버 순서도1. 웹서버는 클라이언트의 요청을 받는다.2. 해당 요청에 맞게 프로세스를 처리한다. : 이 과정에서 처리에 대한 로그를 기록함3. 처리 후 결과를 기록한다.4. 기록한 결과와 데이터 형식에 맞춰서 클라이언트에게 반환한다. 여기서 맞닥뜨린 문제점1. 요청에 맞게 프로세스를 처리하는 과정에서, 처리하는 시간이 늘어날수록 응답(response)도 늦어졌다.2...
Spring Security 권한 처리를 해볼게요.. 회원 데이터를 몇 개 더 넣고..각 회원 별로 권한을test1 = ROLE_USERtest2 = ROLE_MANAGERtest3 = ROLE_ADMIN이렇게 부여했습니다.이 상황이면, 이렇게 접근이 가능합니다. 여기서, 스프링 시큐리티 설정 파일에서 @EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true) EnableGlobalMethodSecurity 어노테이션을 통해 securedEnabled, prePostEnabled 두 개를 활성화시켜주고 @Secured("ROLE_ADMIN") @GetMapping("info") public @ResponseBo..
Spring Security 로그인 처리를 해볼게요.. 먼저. 시큐리티 설정 메서드에서 @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); http.authorizeRequests() .antMatchers("/user/**") .authenticated() .antMatchers("/manager/**").access("hasRole('ROLE_ADMIN') or hasRole('ROLE_MANAGER')") .antMatchers("/adm..
회원가입 처리와 동시에 비밀번호를 암호화시켜서 DB에 저장까지 해볼게요.. 먼저, 로그인 페이지와 회원가입 페이지를 만들어줬습니다.. 로그인 페이지 ID : PW : 회원가입 하러가기회원가입 페이지 ID : PW : Email : 로그인 하러가기 그리고 user 모델을 생성해 줍니다.. package com.cos.security1.model;import lombok.Data;import org.hibernate.annotations.CreationTimestamp;import javax.persistence...
해당 프로젝트는 로그인, 회원가입에 따라 회원별 권한을 부여합니다..비회원, 유저, 매니저, 어드민 총 4개의 계층으로 나누어져 있습니다.. 현재까지의 구조는 다음과 같습니다.. dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' im..
AOP : Aspect Oriented Programming공통 관심 사항(cross-cutting concern) VS 핵심 관심 사항(core concern) 분리 한 가지의 상황을 예를 들어보자면..이 전에 만든 회원 관리 프로젝트에서모든 메서드의 호출 시간을 측정하고 싶다고 할 때..또는 회원 가입 시간, 회원 조회 시간을 측정하고 싶다고 할 때..스프링 컨테이너의 메서드에 전부 시간 측정 로직을 구현해 줘야 됩니다.. 기존 MemberService 메서드 여기서 회원가입(join) 메서드와 회원 조회(findMembers) 메서드의 기능 시간을 측정하는 코드로 수정해 줍니다.. 조회할 때 시간이 콘솔로 찍히는 걸 확인할 수 있습니다.. (오른쪽은 웹브라우저 짤린거입니다 ㅋㅁㅋ) 자 다시 돌..