분류 전체보기
로그인 처리를 위한 UserDetailsService
https://yeo-computerclass.tistory.com/347 [spring security] Spring Security 흐름 / 인증(Authentication) & 인가(Authorization) Spring Security 흐름 Filter(필터) Spring Security의 웹 인프라는 표준 서블릿 필터를 기반으로 합니다. Spring Security 내부에 여러 개의 필터가 각자 특정 책임을 갖고 Request를 처리하는 필터 체인(Filter.. yeo-computerclass.tistory.com 위 포스팅한 글을 먼저 읽고오는 것을 추천한다. UserDetailsService 위 글에서 "UserDetailsService 인터페이스의 구현체가 사용자의 정보와 사용자가 가진 ..
WebSecurityConfigurerAdapter Deprecated
WebSecurityConfigurerAdapter Deprecated 이유 시큐리티 설정 클래스를 사용하려 WebSecurityConfigurerAdapter 클래스를 상속받으려 했는데 스프링 부트 2.7, Spring Security 5.7 이후 버전부터 WebSecurityConfigurerAdapter 클래스가 Deprecated 되었다. 해결: WebSecurityConfigurerAdapter 대체 이에 대한 대처 방법으로 공식 문서를 확인하면 된다. 공식 문서에 나와있는 여러 대체 방법 중 HttpSession 기반인 HttpSecurity 기반 부분을 옮겨적도록 하겠다. HttpSecurity 구성 변경 전: WebSecurityConfigurerAdapter를 상속 @Configurati..
Spring Security 프로젝트 시작
의존성 추가 Spring Boot DevTools Spring Web Lombok Thymeleaf Spring Data JPA MariaDB Driver 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' implementation '..
Spring Thymeleaf 살펴보기
Thymeleaf (타임리프) ? 타임리프는 Spring Framework를 사용하는 개발자들에게 JSP 대신 쓰이는 템플릿 엔진입니다. HTML 5를 준수하는 형태로 기술할 수 있기 때문에 타임리프는 웹 어플리케이션에 적합한 템플릿 엔진입니다. 요즘 서비스에서는 JSP와 타임리프는 잘 쓰이진 않습니다. 백엔드에서는 데이터를 JSON으로 전달하고 프론트엔드에서는 리액트나 뷰로 전달받은 데이터를 가공하기 때문입니다. 타임리프가 최근 자주 쓰이는 용도로는 백엔드에서 간단히 관리자(Admin) 페이지를 만드는 경우입니다. 같이 협업해서 결과를 산출하는 실무에서는 잘 쓰이진 않지만 공부하는 차원에서 포스팅하도록 하겠습니다. Thymeleaf 사용 설정 dependencies { implementation 'or..
[MySQL] port 변경하기
MariaDB의 포트를 3306으로 설정해줌으로 MySQL의 포트를 따로 설정해주어야 했다. 포트(port)를 변경하기 위해선 다음과 같은 과정을 거치면 된다. 1. my.ini 수정 기본 설정으로 MySQL을 다운로드 하였다면 my.ini의 경로는 다음과 같을 것이다. 경로: C:\ProgramData\MySQL\MySQL Server 8.0 my.ini 파일에서 두 군데 port 번호를 변경해주어야 한다. 2. 서비스에서 MySQL 재구동 my.ini에서 설정한 포트로 정상적으로 구동된다.
Maria DB 설치
1. Maria DB 설치 홈페이지로 이동 https://mariadb.org/ MariaDB Foundation - MariaDB.org … Continue reading "MariaDB Foundation" mariadb.org 2. Download Mirror에 Korea가 없어서 Taipei로 Download 하였다. 3. 다운받은 파일 실행 UTF-8을 체크해주어야 한글이 정상적으로 출력된다. 4. 설치 진행 만약 [Next]를 눌렀을 때 TCP port가 이미 사용중이라고 나오면 아마 대부분은 MySQL을 사용하다가 MaraiDB를 설치하려는 경우일 것이다. 이때는 당황하지 말고 [리소스 모니터]에 들어가 3306 port 사용처를 본다. [명령 프롬프트] > [관리자 실행] > taskkil..
Spring Security @PreAuthorize, @PostAuthorize, @Secured
Spring Security에서 메서드 수준 접근 제어를 위해 사용되는 어노테이션들이 있습니다. 이 어노테이션들을 사용하여 메서드의 실행 전후에 인가 검사를 수행하여 접근 권한을 제어할 수 있습니다. @PreAuthorize 메소드가 실행되기 전에 인가(Authorization)를 검사하는데 사용됩니다. 메소드의 실행 전에 지정된 스프링 EL(SpEL) 표현식을 평가하고, 표현식이 true인 경우에만 메소드가 실행됩니다. 인가 검사를 통과하지 못하면 예외가 발생하며, 메소드 실행은 중지됩니다. @PreAuthorize("hasRole('ROLE_ADMIN')") public void deleteUser(int userId) { // ... } @PostAuthorize 메소드 실행 후에 인가(Author..
스프링 시큐리티를 이용한 로그인
실행 결과 1) boardList에서 글작성 클릭 시 로그인 창 출력 로그인을 하지 않아도 글을 보거나 게시판 목록 접근 가능하지만 글 등록은 로그인하여야 함 2) ROLE_ADMIN 권한을 갖고 있는 아이디 비밀번호로 접속 3) 게시글 작성 4) 해당 게시글 확인 5. 테이블 설계 ▶member 테이블 create table member( userid varchar(50) primary key, userpw varchar(100) not null, username varchar(100) not null, regdate datetime not null default current_timestamp, updatedate datetime, enabled char(1) default '1' ); ▶member..