即使在CITRUS-CONTEXT文件中提供了用户名和密码后,Citrus SFTP仍要求输入用户名和密码

时间:2018-09-20 09:39:30

标签: java linux citrus-framework

我正在尝试使用citrus对sftp服务器进行身份验证,我在这样的上下文文件中提供了usrname和密码

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/hospital-cubical-track-system', function(req, res, next) {
  res.render('products/hospital-cubical-track-system', { title : 'Hospital Cubical Track System'});
});

router.get('/telescopic-iv-bag-hanger', function(req, res, next) {
  res.render('products/telescopic-iv-bag-hanger', { title : 'Telescopic IV Bag Hanger'});
});

router.get('/wall-protection-system', function(req, res, next) {
  res.render('products/wall-protection-system', { title : 'Wall Protection System'});
});

router.get('/hospital-blinds', function(req, res, next) {
  res.render('products/hospital-blinds', { title : 'Hospital Blinds'});
});

router.get('/nurse-call-system', function(req, res, next) {
  res.render('products/nurse-call-system', { title : 'Nurse Call System'});
});

router.get('/hospital-linen', function(req, res, next) {
  res.render('products/hospital-linen', { title : 'Hospital Linen'});
});


module.exports = router;

程序正在执行时,我会得到一些提示,例如

<citrus-sftp:client id="client"
   strict-host-checking="false"
   port="22"
   username="xxxxx"
   password="xxxxxxxx"
   timeout="1000"/>

键入用户名后,它会询问

"KEBROS USERNAME :  "

然后在程序开始执行命令之后。我必须做些什么才能消除这个问题。

1 个答案:

答案 0 :(得分:0)

这是Kerberos / GSSAPI身份验证,提示输入用户名和密码。

默认情况下,Kerberos / GSSAPI gssapi-with-mic是使用JSch客户端时客户端和服务器选择的首批身份验证方法之一。解决方案是从JSch会话的首选身份验证方法列表中删除gssapi-with-mic

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

不幸的是,您无法使用当前的Citrus SFTP客户端实现来设置此配置(请参见问题https://github.com/citrusframework/citrus/issues/483)。

因此,您可以尝试在环境中的服务器上禁用gssapi-with-mic身份验证方法。或者,您可以尝试使用

在本地$HOME/.ssh/config配置文件中禁用身份验证
Host *
  GSSAPIAuthentication no

通常,您需要等待Citrus解决此问题,以便能够在SFTP客户端端点上的JSch会话中设置首选的身份验证方法。