SpringCloud 기반 Microservices 구조 실전 사례-프로필 속성 내용 복호화
SpringBoot 프로필 을 사용 한 친구 들 은 자원 파일 의 내용 이 통상 적 으로 명문 으로 표시 되 어 안전성 이 비교적 낮 다 는 것 을 안다.application.properties 나 application.yml 을 엽 니 다.예 를 들 어 my sql 로그 인 비밀번호,redis 로그 인 비밀번호 와 제3자 키 등 이 한눈 에 보 입 니 다.복호화 구성 요 소 를 소개 하여 속성 설정 의 안전성 을 향상 시 킵 니 다.
jasypt[http://www.jasypt.org/]공식 적 으로 내 놓 은 해석 은:
Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works.
simplemall 프로젝트 도 이 암호 화 구성 요 소 를 사용 하여 spring boot 와 결합 하여 사용 합 니 다.외국 의 대신 Ulises Bocchio 는 spring boot 에서 사용 하 는 공구 꾸러미,Github 주 소 를 썼 습 니 다.https://github.com/ulisesbocc...,다음은 jasypt 이 spring boot 에서 의 용법 을 소개 합 니 다.
1.maven 의존 도입
com.github.ulisesbocchio
jasypt-spring-boot-starter
1.14
2.암호 화 매개 변수 설정
jasypt:
encryptor:
#
password: your password
jasypt.encryptor.password=your password
이 암호 의 생 성 은 두 가지 방식 으로 생 성 될 수 있 습 니 다.main 함수 생 성 을 쓰 고 jar 명령 방식 을 직접 사용 할 수 있 습 니 다.이 코드 는 main 함수 방식 을 사용 합 니 다.이 코드 는 account-server 의 test 패키지 에 있 습 니 다.
package com.simplemall.account.test;
import org.jasypt.encryption.StringEncryptor;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import com.simplemall.account.AccountServApplication;
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@SpringBootTest(classes = AccountServApplication.class)
public class Jasyptest {
@Autowired
StringEncryptor encryptor;
@Test
public void getPass() {
String result = encryptor.encrypt("root");
System.out.println(result);
Assert.assertTrue(result.length() > 0);
}
}
3.application.properties/yml 에 해당 하 는 설정 항목 업그레이드
기 존 설정
#mysql database config
spring.datasource.url=jdbc:mysql://localhost:3306/micro_account?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull
#use jasypt to encrypt username/password
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver
업그레이드 후 설정
#mysql database config
spring.datasource.url=jdbc:mysql://localhost:3306/micro_account?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull
#use jasypt to encrypt username/password
spring.datasource.username=ENC(BnBr3/idF0PH9nd20A9BXw==)
spring.datasource.password=ENC(BnBr3/idF0PH9nd20A9BXw==)
spring.datasource.driverClassName=com.mysql.jdbc.Driver
이로써 설정 이 완료 되 었 습 니 다.효 과 는 simplemall 소스 코드 에서 보 듯 이 설정 파일 의 관련 속성 에 대해 안전 한 업 그 레이 드 를 했 습 니 다.
원본 코드:https://github.com/backkoms/s...
확장 읽 기:
SpringCloud 기반 의 Microservices 구조 실전 사례-서문
SpringCloud 기반 의 Microservices 구조 실전 사례-구조 해체
Spring Boot+Elasticsearch 색인 일상 유지 보수
마이크로 서비스 시스템 에서 어떻게 서 비 스 를 신속하게 구축 합 니까?
자주 사용 하 는 온라인 API 관리 도 구 를 소개 합 니 다.
어떻게 전통 소프트웨어 개발 에서 인터넷 기술 개발 로 순조롭게 넘 어 갑 니까?
신기 술 을 배 울 때 습득 해 야 할"최소한 필요 한 지식"
7 년 동안 소프트웨어 개발 을 했 는데 오히려 더 막막 해 졌어 요.
소프트 스 킬:코드 이외 의 생존 가이드
프로그래머,호기심 과 지식욕 보호
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring Cloud에서 Feign에 대한 일반적인 질문 요약1. FeignClient 인터페이스, @GettingMapping 같은 조합 메모는 사용할 수 없음 코드 예: 이쪽 @RequestMapping(value = "/simple/{id}", method = Reque...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.