Если вы используете только функцию mail()
, вам нужно заполнить конфигурационный файл.
Вам нужно открыть расширение почты и установить SMTP smtp_port
и т. д., и самое главное, ваше имя пользователя и пароль. Без этого почта не может быть отправлена. Кроме того, вы можете использовать класс PHPMail для отправки.
Вы можете использовать Jasypt для шифрования свойств, поэтому у вас может быть такое свойство:
db.password=ENC(XcBjfjDDjxeyFBoaEPhG14wEzc6Ja+Xx+hNPrJyQT88=)
Jasypt позволяет вам шифровать ваши свойства с использованием разных алгоритмов, как только вы получите зашифрованное свойство, которое вы вставляете внутри ENC(...)
. Например, вы можете зашифровать этот путь через Jasypt с помощью терминала:
encrypted-pwd$ java -cp ~/.m2/repository/org/jasypt/jasypt/1.9.2/jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="contactspassword" password=supersecretz algorithm=PBEWithMD5AndDES
----ENVIRONMENT-----------------
Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 24.45-b08
----ARGUMENTS-------------------
algorithm: PBEWithMD5AndDES
input: contactspassword
password: supersecretz
----OUTPUT----------------------
XcBjfjDDjxeyFBoaEPhG14wEzc6Ja+Xx+hNPrJyQT88=
Чтобы легко настроить его с помощью Spring Boot, вы можете использовать стартер jasypt-spring-boot-starter с идентификатором группы com.github.ulisesbocchio
Имейте в виду, что вам нужно будет запустить приложение, используя тот же пароль , который вы использовали для шифрования свойств. Итак, вы можете запустить свое приложение таким образом:
mvn -Djasypt.encryptor.password=supersecretz spring-boot:run
Вы можете проверить ссылку ниже для получения дополнительной информации:
https://www.ricston.com/blog / encrypting-properties-in-spring-boot-with-jasypt-spring-boot /
Чтобы использовать ваши зашифрованные свойства в приложении, просто используйте его как обычно, используйте любой способ, который вам нравится ( Spring Boot связывает магию, в любом случае свойство должно быть, конечно, в пути к классу):
Использование @Value
аннотации
@Value("${db.password}")
private String password;
Или с помощью Environment
@Autowired
private Environment environment;
public void doSomething(Environment env) {
System.out.println(env.getProperty("db.password"));
}
Spring Cloud Config Server позволит использовать этот тип поведения. Используя JCE, вы можете настроить ключ на сервере и использовать его для шифрования свойств приложений.
http://cloud.spring.io/spring-cloud-config/spring-cloud-config .html
Если вы хотите скрыть свои пароли, самым простым решением будет использование переменных среды в файле application.properties
или непосредственно в вашем коде.
В application.properties
:
mypassword=${password}
Затем в вашем классе конфигурации:
@Autowired
private Environment environment;
[...]//Inside a method
System.out.println(environment.getProperty("mypassword"));
В вашем классе configuration
:
@Value("${password}")
private String herokuPath;
[...]//Inside a method
System.out.println(herokuPath);
Примечание. Возможно, вам придется перезапустить после установки переменной окружения. Для окон:
Для получения дополнительной информации см. Эту документацию .
@Values("db.password")
. Для "где" это просто путь к классам. «Что дальше» ... ничего, весенняя загрузка делает все волшебство автоматически – Federico Piazza 2 October 2017 в 17:18