2011-11-29 64 views
4

我使用SecureInputHandler在ant腳本中接受來自最終用戶的密碼,但它強制用戶在允許輸入文本之前按輸入。 這是預期的行爲?另外,我沒有找到關於這個主題的很多文檔,請隨時將我指向任何資源。Ant secureInputHandler:要求用戶在接受輸入前按Enter鍵

<input message="Please enter password:" addproperty="password.property"> 
    <handler classname="org.apache.tools.ant.input.SecureInputHandler" /> 
</input> 

回答

4

SecureInputHandler需要Ant 1.7.1或更高版本(以支持處理程序)和Java 6或更高版本(以提供控制檯類)。

如果您沒有正確的Ant版本,則會出現錯誤。如果您沒有正確的Java版本,則Ant會回退到缺省輸入處理程序。

請注意,您還可以使用:

<handler type="secure"/> 

的Javadoc和源可以看出here

使用在Windows運行cmd shell螞蟻1.8.2和Java 1.6,我得到這個:

test: 
Please enter password:<cursor here> 

的密碼被屏蔽。您輸入密碼並點擊輸入

在CMD外殼採用了Cygwin的外殼,或Java 1.5,我得到這個:

test: 
    [input] Please enter password: 
<cursor here> 

的密碼不被屏蔽。您輸入密碼並點擊輸入

使用Eclipse控制檯,我根本無法獲取密碼。我鍵入,它在控制檯上回顯,我按輸入,沒有任何反應。

我注意到Input任務的文件中,它說:

IDE行爲取決於IDE:一些掛起等待輸入,一些 讓你鍵入它對於這種情況,地方。 (受保護)屬性文件中的密碼並在輸入任務之前加載。

換句話說,它可能無法在IDE中工作,請使用解決方法。

+0

<處理程序類型=「安全」/>在任何特定版本的螞蟻上工作,因爲我在使用它時遇到錯誤。 –

+0

是的,它適用於Ant 1.8.2。 – sudocode

0

exec干擾了輸入任務。 可以通過在exec任務中指定inputstring=」」來解決。 請參閱中的exec causes other tasks to hang or leads to strange behaviour of <input> tasks

+0

不錯的工作回答一個問題,你沒有問;) – sudocode

+0

@sudocode:對不起隊友,你的迴應是非常有用的,我適時upvoted。但是當我問這個問題時,我不知道我的問題的解決方案就是這樣。獲得的經驗:在提出問題之前,我會花時間閱讀相關軟件的常見問題解答。再次感謝您幫助我。 :) –

+0

不用擔心 - 我不得不笑,就這些。如果你用完整的上下文('exec'和'input')更新了你的問題,那麼我認爲你的答案將是最好的答案,並且可以在未來幫助其他人。 – sudocode