Рабочий пример клиента SSH в Citrus Framework

У кого-нибудь есть рабочий пример проекта, в котором вы используете Citrus Framework в качестве SSH-клиента для подключения к реальному серверу для отправки команды и проверки того, что она возвращает?

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

Вот тема, похожая на мою проблему: Пропуск запросов аутентификации Kerberos с помощью JSch

Я думаю, что это сработает, если Citrus просто выставит параметр конфигурации, чтобы включить / выключить эту опцию, если это необходимо.

session.setConfig(
"PreferredAuthentications", 
"publickey,keyboard-interactive,password");

Рабочий пример был бы очень полезен.


person smo    schedule 05.12.2016    source источник


Ответы (1)


Вот рабочий пример SSH-клиента в Citrus 2.7.2.

Я протестировал его как с аутентификацией по ключу SSH, так и с аутентификацией по паролю. В примере показана версия ключа SSH. Для аутентификации только по паролю вам нужно заменить private-key-path и private-key-password на password="some_password".

цитрусовые-context.xml

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:citrus-ssh="http://www.citrusframework.org/schema/ssh/config"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
       http://www.citrusframework.org/schema/ssh/config
       http://www.citrusframework.org/schema/ssh/config/citrus-ssh-config.xsd">

    <context:property-placeholder location="classpath:citrus.properties"/>

    <citrus-ssh:client id="sshClient"
                       user="${ssh.user}"
                       host="${ssh.host}"
                       port="22"
                       private-key-path="${ssh.private.key.path}"
                       private-key-password="${ssh.private.key.password}"/>

</beans>

цитрусовые свойства

ssh.user=some_user
ssh.host=some.host
ssh.private.key.path=/home/some_user/.ssh/id_rsa
ssh.private.key.password=secret_password

SshTest_IT.xml

<?xml version="1.0" encoding="UTF-8"?>
<spring:beans xmlns="http://www.citrusframework.org/schema/testcase"
              xmlns:spring="http://www.springframework.org/schema/beans"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xmlns:sshmsg="http://www.citrusframework.org/schema/ssh/message"
              xsi:schemaLocation="http://www.springframework.org/schema/beans
              http://www.springframework.org/schema/beans/spring-beans.xsd
              http://www.citrusframework.org/schema/testcase
              http://www.citrusframework.org/schema/testcase/citrus-testcase.xsd
              http://www.citrusframework.org/schema/ssh/message
              http://citrusframework.org/schema/ssh/message/citrus-ssh-message.xsd">

    <testcase name="SshTest_IT">

        <actions>
            <send endpoint="sshClient">
                <message>
                    <payload>
                        <sshmsg:ssh-request>
                            <sshmsg:command>ls -la</sshmsg:command>
                            <sshmsg:stdin></sshmsg:stdin>
                        </sshmsg:ssh-request>
                    </payload>
                </message>
            </send>

            <receive endpoint="sshClient">
                <message validator="">
                    <payload>
                        <sshmsg:ssh-response>
                            <sshmsg:stdout>@contains('.bashrc')@</sshmsg:stdout>
                            <sshmsg:stderr></sshmsg:stderr>
                            <sshmsg:exit>0</sshmsg:exit>
                        </sshmsg:ssh-response>
                    </payload>
                </message>
            </receive>
        </actions>
    </testcase>
</spring:beans>
person gucce    schedule 03.08.2017