SpringCloud 기반 Microservices 구조 실전 사례-프로필 속성 내용 복호화

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.암호 화 매개 변수 설정
  • application.yml 에 설정 을 추가 합 니 다
  • jasypt:
      encryptor:
        #                   
        password: your password
  • application.properties 에 설정 을 추가 합 니 다
  • 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 년 동안 소프트웨어 개발 을 했 는데 오히려 더 막막 해 졌어 요.
    소프트 스 킬:코드 이외 의 생존 가이드
    프로그래머,호기심 과 지식욕 보호

    좋은 웹페이지 즐겨찾기