Скрыть токен telegram-бота в открытом коде

134
27 февраля 2022, 09:30

Необходимо выложить код telegram-бота на GitHub. Каким образом можно скрыть его токен?

public String getBotToken() { return "token"; }
Answer 1

Необходимо вынести токен в конфигурационный файл. Конфигурационный файл должен находится в src/main/resources/config.properties Содержание файла config.properties следующее:

# Токен необходимо задать при установке
token= 

В таком виде конфигурационный файл закоммитить. После коммита можно будет вставить значение реального токена, чтобы была возможность запустить бота, но не коммитить значение

# Токен необходимо задать при установке
token=12344

Чтобы считывать токен из файла нужно воспользоваться классом import java.util.Properties;

Properties prop = new Properties();
try {
    //load a properties file from class path, inside static method
    prop.load(App.class.getClassLoader().getResourceAsStream("config.properties"));
    //get the property value and print it out
    System.out.println(prop.getProperty("token"));
} 
catch (IOException ex) {
    ex.printStackTrace();
}

Чтобы в дальнейшем случайно не перезатереть файл с пустым токеном, реальным, который используется для разработки, нужно будет прописать файл config.properties в .gitignore

READ ALSO
Оптимизация кода (ternary + for)

Оптимизация кода (ternary + for)

Решил задачку, но код все же надо оптимизироватьНе могу понять, как можно избавиться от тернарного в return, добавив его в цикл for(точнее во второе...

83
Какую коллекцию применить?

Какую коллекцию применить?

Например, мы имеем следующий класс:

134
This application has no explicit mapping for /error, so you are seeing this as a fallback

This application has no explicit mapping for /error, so you are seeing this as a fallback

При запуске проекта на Java, с использованием Spring появляется ошибка: "This application has no explicit mapping for /error, so you are seeing this as a fallback" Данное приложение представляет...

220
Какие есть альтернативы TreeSet

Какие есть альтернативы TreeSet

Решил задачу, но как я понял просто TreeSet без лишних методов для сортировки классов не годитсяВыдает ошибку: cannot be cast to class java

163