열심히 프로젝트를 하던 도중에.. API 서버를 개발한 뒤, Linux 환경에서 빌드 및 배포를 진행했었다.현재 개발하는 mac 환경에서는 다 잘 되는데.. 웹 컨트롤러로 요청을 받으면, 뷰 템플릿을 찾지 못하고 에러가 발생하는 것이었다!!여러 시도를 해봤다.. 시도 1. 실제 파일 위치와 경로 확인src/main/resources/templates 디렉터리 내에 파일이 있는지 확인하고, 대소문자를 확인해 봤다. 결과 - 이상 무 시도 2. Thymeleaf 구성 설정application.properties에서 타임리프 설정을 확인했다. spring.thymeleaf.prefix=classpath:/templates/spring.thymeleaf.suffix=.html 결과 - 이상 무 가만 생각해 보니..
이 전에 진행했던 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..