2016-10-10 2 views
0

Я использую сервер spring-cloud-config и пытаюсь использовать функцию шифрования/дешифрования. Есть ли способ, которым мы можем настроить функцию шифрования/дешифрования, то есть у нас есть свои собственные стандарты шифрования и мы хотим использовать эти библиотеки.Пользовательское шифрование/дешифрование для сервера Spring-Cloud-Config

Цените любую помощь заранее.

ответ

2

Если вы хотите настроить шифрование/дешифрование, по сути вам нужно настроить bean-компоненты org.springframework.security.crypto.encrypt.TextEncryptor.

Оптимистически удалите всю конфигурацию, связанную с entrypt, из вашего application.properties/application.yml, также вам нужно убедиться, что JCE не находится в вашем пути к классам, основное предложение - отключить автоматическую настройку шифрования по умолчанию по умолчанию, а затем зарегистрироваться ваш собственный TextEncryptor bean.

Здесь я добавляю очень простой образец, поэтому вы можете реализовать MyTextEncryptor с существующей библиотекой.

Образец

@SpringBootApplication 
@EnableConfigServer 
public class Application { 
    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 

    @Component 
    static class MyTextEncryptor implements TextEncryptor { 

     @Override 
     public String encrypt(String text) { 
      return "encrypt\n"; 
     } 

     @Override 
     public String decrypt(String encryptedText) { 
      return "decrypt\n"; 
     } 
    } 
} 

Результат enter image description here enter image description here enter image description here

Ссылка:

org.springframework.cloud.bootstrap.encrypt.EncryptionBootstrapConfiguration org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer org.springframework.cloud.config.server.encryption.EncryptionController

+0

Спасибо Липин за указатель, я определил обычай TextEncryptor, но в настоящее время сталкивается вопрос «{» статус «:» NO_KEY «„описание“:„Ни один ключ не был установлен для службы шифрования“}», когда я скручиваться on/encrypt. Обновится, как только я получу это. – Swappy

+0

@Swappy Я обновил очень простой образец, надеюсь, что это может вам помочь. –

+0

Большое спасибо @Liping для фрагмента кода. Я написал подобный образец, но вернул ту же функциональную переменную «текст» из функции шифрования (просто пытался вернуть то же значение для тестирования). Мое наблюдение - это функция шифрования, вызываемая со значением как «FOO», и если мы вернемся назад «FOO», она даст ошибку «NO_KEY», однако, если входящий FOO будет изменен на какое-то другое значение, например. Функция FOOBAR затем шифруется снова с фактическим значением, которое нужно зашифровать. – Swappy

Смежные вопросы