Back-end/JAVA & Spring (12) 썸네일형 리스트형 [ Spring Security ] 동적 URL 접근 권한 제어 구현 🌱 Spring Security: 동적 URL 접근 권한 제어 구현 개요Spring Security는 기본적으로 정적 방식의 URL 접근 제어를 제공한다. 하지만 실무에서는 권한 정책이 자주 변경되거나, URL 접근 권한을 관리 화면에서 실시간으로 제어해야 하는 요구가 많다. "GUEST 사용자에 대한 접근 가능 URL"을 DB에서 동적으로 관리하고, 이를 Spring Security에 실시간 반영 될 수 있도록 구현한 내용을 정리할 예정이다. 핵심 목표GUEST(비로그인 사용자)의 접근 URL을 DB에서 관리Spring Security의 인증 필터 이전에 동적으로 URL 접근 여부 판단권한 정보는 캐싱하여 성능 최적화재기동 없이 정책 변경 가능 기술 구성Spring boot 3.xSpring S.. [ Spring Boot ] Jasypt: Spring Boot에서 간단하고 안전한 암호화 🌱 Spring Boot - Jasypt 애플리케이션 개발 중 민감한 정보(예: 데이터베이스 연결 정보, API 키, 비밀번호 등)를 관리하는 일은 보안의 핵심 요소이다. 하지만 이런 정보를 평문으로 설정 파일에 저장하면 보안 문제가 발생할 수 있다. 이를 해결하기 위해 **Jasypt(Java Simplified Encryption)**를 사용할 수 있다. Jasypt는 Spring Boot와 쉽게 통합되어 민감한 정보를 암호화하고 안전하게 관리할 수 있는 간단하면서도 강력한 솔루션을 제공한다. JasyptJasypt(Java Simplified Encryption)은 Java 애플리케이션에서 암호화 및 복호화를 간단하게 처리할 수 있도록 설계된 라이브러리이다. 특히 Spring Boot와 통합하.. [ Spring Boot ] Spring Boot에서 Datasource 암호화하기 🌱 Spring Boot - Datasource 암호화 데이터베이스 연결 정보를 포함한 spring.datasource.url, spring.datasource.username, spring.datasource.password는 애플리케이션의 핵심 민감 정보 중 하나이다. 이 정보가 외부로 노출되면 보안 문제가 발생할 수 있으므로, 이를 암호화하여 안전하게 관리하는 방법이 중요하다. Spring Boot와 Jasypt를 활용해 데이터베이스 연결 정보를 암호화하는 방법을 소개할 예정이다. JasyptJasypt(Java Simplified Encryption)란 Java 애플리케이션에서 민감한 정보를 쉽게 암호화하고 복호화할 수 있도록 도와주는 라이브러리이다. Spring Boot와 통합하면 애플리케.. [ Spring Boot ] Banner 변경 🌱 Spring boot - Banner 변경 Spring Boot는 기본적으로 애플리케이션이 실행될 때 콘솔에 Spring 로고와 버전을 포함한 배너를 출력한다.이를 설정하려면 아래 방법 중 하나를 선택하면 된다 배너 비활성화 배너를 비활성화하려면 application.properties 또는 application.yml 파일에 다음 설정을 추가 application.propertiesspring.main.banner-mode=off application.ymlspring: main: banner-mode: off 배너 커스터마이징src/main/resources 디렉토리에 banner.txt 파일을 생성한 후, 원하는 텍스트를 추가하면 된다 banner.txt,--. ,--.. [ Spring ] application.properties 개발자 정의 경고 해결 🌱 application.properties측 개발자 정의 프로퍼티 경고 해결 application.properties 측에 프로퍼티 정의시 노란색으로 아래 경고 표시가 뜬다 이게 은근 신경쓰임.. build.gradle 의존성 주입dependencies { annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'} src/main/java/resources/META-INF 경로측에 additional-spring-configuration-metadata.json 파일 생성{ "properties": [ { "name": "file.upload-dir", .. [ Spring ] batch 스케줄링 기간 설정 🌱 배치 스케줄링 기간 설정 배치 스케줄링은 특정 작업을 주기적으로 실행할 수 있도록 시간을 설정하는 것을 말 한다. 주로 서버에서 자동으로 실행되어야 하는 작업, 예를 들어, 로그 파일 정리, 보고서 생성 등을 처리할 때 사용한다. Spring에서 배치 작업을 스케줄링하는 방식은 주로 @Scheduled 어노테이션을 사용하여 설정한다.배치 메소드에 @Scheduled 어노테이션을 추가하여 스케줄을 설정한다. @Scheduled 어노테이션에서 사용 가능한 속성1. cron : corn 표현식을 사용하여 배치 작업이 실행될 시점을 설정 - 예시 : @Scheduled(cron = "0 1 1 * * ?") → 매월 1일 새벽 1시에 실행2. fixedDelay : 이전 작업 완료된 후 일정 시간이.. [SVN] SVN: '0x0040010b: Obtain Project Name' 에러 : svn check-out 불가능시 💻 SVN - SVN: '0x0040010b: Obtain Project Name' 에러 svn Repository Location.. 후 check-out 을 진행할려고 했는데 SVN: '0x0040010b: Obtain Project Name' operation finished with error: Unable to make field private java.lang.Throwable java.lang.Throwable.cause accessible: module java.base does not "opens java.lang" to unnamed module @.. Unable to make field private java.lang.Throwable java.lang.Throwable.cause .. [ Spring boot ] v3.0.0 이상에서 JDK 변경시 빌드 에러.. 🌱 String boot v3.0.0 기본적으로 pom.xml과 17 프로젝트 우클릭 > Properties > Java Build Path 에서 변경을 진행 할 수 있다. Spring boot v3.0.0 이상에서 Java 1.8 혹은 11로 변경을 진행하였다면 빌드시 Error: A JNI error has occurred, please check your installation and try again 해당 에러가 발생.. Spring boot v3.0.0 버전에서 프로젝트를 생성하였다면 예상 했을 수도 있다.. 프로젝트 생성시 Java 17, 21 version 밖에 선택이 되지 않았다는 것을.. Spring boot v3.0.0 는 java 1.8과 11이 호환되지 않는다.. 만약 1.8과 11.. 이전 1 2 다음