본문 바로가기

백엔드129

주요 AuthenticationException 종류와 설명 BadCredentialsException잘못된 사용자 이름이나 비밀번호가 입력되었을 때 발생하는 예외입니다.기본 예외로, 보통 사용자 인증 실패 시 발생하는 대표적인 예외입니다.LockedException계정이 잠겨 있어 로그인이 불가능한 경우 발생합니다.주로 사용자가 계정 잠금 기능을 활성화한 경우 발생하며, 잠금 해제 전까지 로그인을 차단합니다.DisabledException계정이 비활성화된 상태일 때 발생합니다.관리자가 계정을 비활성화했거나 사용자가 활성화를 하지 않은 경우 등에서 주로 발생합니다.AccountExpiredException계정이 만료되어 로그인이 불가능한 경우 발생합니다.계정의 유효기간이 지나 만료된 상태일 때 발생합니다.CredentialsExpiredException자격 증명이.. 2024. 10. 31.
메뉴 권한 관리 구조 쿼리 (MariaDB - WITH RECURSIVE) MyBatis와 MySQL을 사용하여 메뉴 기반 권한 관리 시스템의 구조를 설정하고 쿼리를 작성해 보겠습니다. 역할(Role)과 메뉴(Menu)를 연결하여 특정 역할에 따라 접근할 수 있는 메뉴를 관리하는 구조입니다.1. 데이터베이스 테이블 구조 예시다음은 메뉴(Menu), 역할(Role), 권한(Permission)을 관리하기 위한 기본 테이블 구조입니다.1.1. 메뉴 테이블 (Menus)CREATE TABLE Menus ( menu_id INT PRIMARY KEY AUTO_INCREMENT, menu_name VARCHAR(100) NOT NULL, parent_menu_id INT, url VARCHAR(255), order_index INT, FOREIGN KEY.. 2024. 10. 26.
메뉴기반 권한 관리 DB 스키마와 쿼리 메뉴 기반 권한 관리 DB 스키마를 만들고, 몇 가지 기본 쿼리를 작성해 보겠습니다. 이 스키마는 사용자, 역할, 메뉴, 권한 등을 효율적으로 관리하고, 권한에 따른 접근 제어를 구현할 수 있도록 설계되어 있습니다.1. 스키마 정의Users 테이블CREATE TABLE Users ( user_id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) UNIQUE NOT NULL, password VARCHAR(100) NOT NULL, email VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);Roles 테이블CREATE TABLE Roles ( role_id INT P.. 2024. 10. 26.
Spring Security 설정 기반 권한 관리 vs 데이터베이스 기반 권한 관리 1. Spring Security 설정 기반 URL 권한 관리특징:권한 관리 규칙이 Java 또는 XML로 하드코딩됩니다.URL 패턴과 역할이 WebSecurityConfigurerAdapter 클래스의 http.authorizeRequests()에 정의됩니다.예시:@Overrideprotected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/admin/**").hasRole("ADMIN") .antMatchers("/user/**").hasRole("USER") .anyRequest().authenticated();}장점:단순함: 설정이 간.. 2024. 10. 21.
Linux에서 Shell Script를 실행 할때, “/bin/bash^M: bad interpreter: No such file or directory" 오류 발생 원인 : 1. Windows에서 작성한 Script를 Linux에서 바로 실행 하려고 하면 나타나는 현상인데, Windows와 Linux의 개행문자를 표현 하는 방식이 다르기 때문. Windows에서는 CRLF(\r\n)으로 표현하는데 그 의미는 다음과 같다. CR(Carriage Return, \r)은 새로운 행을 추가하고 LF(Line Feed, \n)는 시작위치로 돌아간다는 의미이다. 반면에, Linux에서는 LF(\n)으로만 표현하도록 되어 있다. 2. docker container를 생성해서 내부에서 cron을 통해 간단한 echo 스크립트를 실행시키는 내용이었는데, cron이 동작하지 않았다. 원인은 windows에서 작성한 파일의 개행문자가 LF(Line Feed)가 아닌 CRLF(Carri.. 2024. 8. 21.
728x90