Eclipse中是否有用于ANT任务的SecureInputHandler



Eclipse IDE的ANT中使用<input .../>任务时,是否有方法屏蔽密码

我从命令行看到了一种方法:

<input message="secure-input:" addproperty="the.password">
    <handler classname="org.apache.tools.ant.input.SecureInputHandler" />
</input>

但这在eclipse中不起作用。

EDIT:由于ant安全输入处理程序在eclipse 4.x中仍然不起作用,这里有一个基于ant脚本任务的解决方案,使用内置的javascript引擎(自JDK1.6.0_06以来),因此不需要额外的库:

<project>
<script language="javascript">
 // imports
 importClass(javax.swing.JPasswordField);
 importClass(javax.swing.JOptionPane);
 var pw = new JPasswordField();
 var choice = JOptionPane.showConfirmDialog(null, pw, "Enter Password..", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
 if (choice == JOptionPane.OK_OPTION) {
  // create ant property
  project.setNewProperty("pwd", pw.getText());
 } else {
  throw "Password required !!";
 }
</script>
<echo>$${pwd} => ${pwd}</echo>
</project>

方法JPasswordField.getText()已弃用,通常您会使用getPassword(),但它不起作用。

// create ant property
var s = new String(pw.getPassword());
project.setNewProperty("pwd", s);

只接受字符数组,而:

// create ant property
var s = String.valueOf(pw.getPassword());
project.setNewProperty("pwd", s);

结果在:

[echo] ${pwd} => function String() { [native code for String.String, arity=1] }

可能是javascript引擎中的一个错误!?(使用jdk 1.7.0_60)

由于1.7.1Ant版本支持Java1.6的安全控制台输入功能,请参阅Ant手册。您使用的是什么版本的Eclipse和Java?或者,您可以使用:
AntForms,它有很多输入对话框,也支持密码

Jera Ant任务它有一个带有可选密码屏蔽的查询任务

EDIT:使用groovy添加一个特定的示例。。

您可以使用脚本语言来打开对话框,这里有一个使用Groovy=
的示例

<project>
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy"/>
 <groovy>
 import groovy.swing.SwingBuilder
 import javax.swing.JFrame
 boolean isAlive = true
 swing = new SwingBuilder()
 button = swing.button('OK')
 frame = swing.frame(title:'Password', defaultCloseOperation:JFrame.EXIT_ON_CLOSE) {
   panel {
     pw = passwordField(columns:10)
     widget(button)
   }
 }
 button.actionPerformed = {
   // set Ant property for further processing
   properties.'password' = pw.text
   isAlive = false
 }
 frame.pack()
 frame.show()
 // prevent ant from closing the window
 while(isAlive) {
  sleep(1000)
 }
</groovy>
<echo>$${password} = ${password}</echo>
</project>

最后编写自己的Inputhandler,请参阅http://sourceforge.net/projects/emaria/files/antdocs/antinput/antinput.pdf/download有关详细信息,

相关内容

  • 没有找到相关文章

最新更新