скрытие вашего пароля в файле класса java для тестового примера

Я пытаюсь написать тестовый пример селена, который будет помещен на сервер jenkins компании, где все сотрудники будут иметь доступ ко всем созданным мной java-файлам.

public static void main(String[] args) {


    WebDriver driver = new FirefoxDriver();

    driver.get("http://somesite.com");

    driver.manage().window().maximize();

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 



    WebElement userName=driver.findElement(By.xpath(".//*[@id='username']"));
    userName.clear();
    userName.sendKeys("[email protected]");

    WebElement password=driver.findElement(By.xpath(".//*[@id='password']"));
    passwordclear();
    password.sendKeys("password");
    password.submit();

   driver.quit();

Что я хочу сделать, так это не показывать там «пароль», я не хочу, чтобы другие сотрудники видели мой пароль. Есть ли способ сделать это?


person user3792255    schedule 08.10.2014    source источник


Ответы (4)


Вы всегда можете зашифровать его или использовать base64 или что-то в этом роде, чтобы он был, по крайней мере, не в виде простого текста, но, честно говоря, любой вид жестко запрограммированного шифрования пароля можно отменить, если они имеют/могут видеть исходный код.

person Zachary Craig    schedule 08.10.2014
comment
Вы также можете использовать класс java Console класса < метод href="http://docs.oracle.com/javase/7/docs/api/java/io/Console.html#readPassword()" rel="nofollow noreferrer">readPassword() и введите его при запуске тестовых случаев. - person Zachary Craig; 09.10.2014
comment
@user3792255 user3792255 Поскольку я не могу комментировать другую ветку, поскольку у меня нет никакой репутации, я чувствую, что это может помочь указать, что коллега может так же легко запустить этот exe и получить ваш пароль, поэтому я не не знаю, хорошая ли это идея. - person Zachary Craig; 09.10.2014

Ну, я думал об этом, и, как вы сказали, base64 или шифрование легко обратимы. Я нашел способ, используя AutoIT. Поэтому вместо того, чтобы отправлять символы (зашифрованные или нет) в веб-элемент, я создал файл .exe и сделал это

Runtime.getRuntime().exec("пароль.exe");

Работало безотказно. Я знаю, что трудно декомпилировать файл .exe.

Так вы думаете, что это лучшее решение?

person user3792255    schedule 08.10.2014
comment
Не уверен, что это лучший способ, но это определенно хороший способ, по крайней мере, скрыть свой пароль. Для еще большей защиты вы можете сохранить пароль в виде зашифрованной строки в исходном коде исполняемого файла, а затем расшифровать его во время выполнения исполняемого файла. - person musical_coder; 09.10.2014
comment
@ user3792255 Не могли бы вы показать мне, как вы это сделали? Я также хочу скрыть свой пароль. Спасибо - person Bruno Sousa; 02.06.2015

Если тест будет запускаться только из Jenkins, вы можете использовать переменную среды Jenkins для хранения пароля.

Jenkins поддерживает переменные среды паролей, которые будут скрыты *** даже в журнале консоли. Этот пароль может быть настроен глобально (доступен для всех заданий) или для каждого задания (в этом случае только люди, имеющие доступ к настройке этого конкретного задания, потенциально могут просматривать пароль, и даже в этом случае не напрямую).

Я подробно объяснил, как настроить это в этом ответ

person Slav    schedule 09.10.2014

Вы можете написать свою собственную функцию для шифрования и описания, чтобы предоставить защищенное значение в отдельном классе и использовать ссылку при предоставлении значения в соответствующем поле.

person Anush Sharma    schedule 17.01.2020