git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@759322 13f79535-47bb-0310-9956-ffa450edef68master
@@ -706,6 +706,9 @@ Other changes: | |||||
file name and comment encoding. Please see the zip tasks' | file name and comment encoding. Please see the zip tasks' | ||||
documentation for details. | documentation for details. | ||||
* <input ...><handler type="secure" /></input> now uses previously undocumented | |||||
SecureInputHandler shipped with Ant 1.7.1. | |||||
Changes from Ant 1.7.0 TO Ant 1.7.1 | Changes from Ant 1.7.0 TO Ant 1.7.1 | ||||
============================================= | ============================================= | ||||
@@ -932,6 +935,9 @@ Other changes: | |||||
* <javac> handles package-info.java files, there were repeatedly compiled. | * <javac> handles package-info.java files, there were repeatedly compiled. | ||||
Bugzilla 43114. | Bugzilla 43114. | ||||
* SecureInputHandler added to use Java 6 System.console().readPassword() | |||||
when available. | |||||
Changes from Ant 1.6.5 to Ant 1.7.0 | Changes from Ant 1.6.5 to Ant 1.7.0 | ||||
=================================== | =================================== | ||||
@@ -46,10 +46,13 @@ Since Ant 1.6, <code><input></code> will not prompt for input if | |||||
a property should be set by the task that has already been set in the | a property should be set by the task that has already been set in the | ||||
project (and the task wouldn't have any effect).</p> | project (and the task wouldn't have any effect).</p> | ||||
<p>A regular complaint about this task is that it echoes characters to the | |||||
console, this is a critical security defect, we must fix it immediately, etc, etc. | |||||
We know it leaves something to be desired, but the problem is Java, not Ant. | |||||
There is nothing we can do to stop the console echoing. </p> | |||||
<p>Historically, a regular complaint about this task has been that it echoes | |||||
characters to the console, this is a critical security defect, we must fix it | |||||
immediately, etc, etc. This problem was due to the lack in early versions of | |||||
Java of a (fully functional) facility for handling secure console input. | |||||
In Java 1.6 that shortcoming in Java's API was addressed and Ant versions 1.7.1 | |||||
and 1.8 have added support for Java 1.6's secure console input feature | |||||
(see <a href="#handler.type">handler type</a>).</p> | |||||
<p> | <p> | ||||
IDE behaviour depends upon the IDE: some hang waiting for input, some let you | IDE behaviour depends upon the IDE: some hang waiting for input, some let you | ||||
@@ -107,8 +110,8 @@ among different Input tasks. | |||||
<td align="center" valign="top"><b>Required</b></td> | <td align="center" valign="top"><b>Required</b></td> | ||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td valign="top">type</td> | |||||
<td valign="top">one of "default","propertyfile", or "greedy". | |||||
<td valign="top"><a name="handler.type" />type</td> | |||||
<td valign="top">one of "default","propertyfile", "greedy", or "secure" (since Ant 1.8). | |||||
</td> | </td> | ||||
<td align="center" valign="top" rowspan="3">One of these</td> | <td align="center" valign="top" rowspan="3">One of these</td> | ||||
</tr> | </tr> | ||||
@@ -94,6 +94,12 @@ define it inside the <code>ANT_OPTS</code> environment variable.</p> | |||||
input. However, it consumes <i>all</i> available input. This behavior is | input. However, it consumes <i>all</i> available input. This behavior is | ||||
useful for sending Ant input via an OS pipe. <b>Since Ant 1.7</b>.</p> | useful for sending Ant input via an OS pipe. <b>Since Ant 1.7</b>.</p> | ||||
<h3>SecureInputHandler</h3> | |||||
<p>This InputHandler calls <code>System.console().readPassword()</code>, | |||||
available since Java 1.6. On earlier platforms it falls back to the | |||||
behavior of DefaultInputHandler. <b>Since Ant 1.7.1</b>.</p> | |||||
<h2>InputRequest</h2> | <h2>InputRequest</h2> | ||||
<p>Instances of <code>org.apache.tools.ant.input.InputRequest</code> | <p>Instances of <code>org.apache.tools.ant.input.InputRequest</code> | ||||
@@ -28,6 +28,7 @@ import org.apache.tools.ant.input.InputHandler; | |||||
import org.apache.tools.ant.input.InputRequest; | import org.apache.tools.ant.input.InputRequest; | ||||
import org.apache.tools.ant.input.MultipleChoiceInputRequest; | import org.apache.tools.ant.input.MultipleChoiceInputRequest; | ||||
import org.apache.tools.ant.input.PropertyFileInputHandler; | import org.apache.tools.ant.input.PropertyFileInputHandler; | ||||
import org.apache.tools.ant.input.SecureInputHandler; | |||||
import org.apache.tools.ant.types.EnumeratedAttribute; | import org.apache.tools.ant.types.EnumeratedAttribute; | ||||
import org.apache.tools.ant.util.ClasspathUtils; | import org.apache.tools.ant.util.ClasspathUtils; | ||||
import org.apache.tools.ant.util.StringUtils; | import org.apache.tools.ant.util.StringUtils; | ||||
@@ -116,16 +117,16 @@ public class Input extends Task { | |||||
/** | /** | ||||
* EnumeratedAttribute representing the built-in input handler types: | * EnumeratedAttribute representing the built-in input handler types: | ||||
* "default", "propertyfile", "greedy". | |||||
* "default", "propertyfile", "greedy", "secure" (since Ant 1.8). | |||||
*/ | */ | ||||
public static class HandlerType extends EnumeratedAttribute { | public static class HandlerType extends EnumeratedAttribute { | ||||
private static final String[] VALUES | |||||
= {"default", "propertyfile", "greedy"}; | |||||
private static final String[] VALUES = { "default", "propertyfile", "greedy", "secure" }; | |||||
private static final InputHandler[] HANDLERS | private static final InputHandler[] HANDLERS | ||||
= {new DefaultInputHandler(), | |||||
= { new DefaultInputHandler(), | |||||
new PropertyFileInputHandler(), | new PropertyFileInputHandler(), | ||||
new GreedyInputHandler()}; | |||||
new GreedyInputHandler(), | |||||
new SecureInputHandler() }; | |||||
/** {@inheritDoc} */ | /** {@inheritDoc} */ | ||||
public String[] getValues() { | public String[] getValues() { | ||||