[ 
https://issues.apache.org/jira/browse/MNG-8398?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James Nord updated MNG-8398:
----------------------------
    Description: 
Maven 3.2.1 provided a way to enter the password to be encrypted via 
interactive input for security reasons.

However the implementation uses the {{java.io.Console}} API with no fallback to 
stdin/stdout.

This makes it virtually impossible[1] to securely[2] encrypt a password from 
another program (for example a tool that will bootstrap a {{settings.xml}} for 
a corporate structure etc.

 
h3. Steps to reproduce

(to reproduce without any 3rd party tooling run, which is not how I would 
expect this to be called, but is here to demonstrate)

{{echo n myMasterPassword |mvn -encrypt-master-password}}
h4. Expected results

{{{base64HexString}}}
h4. Actual results

{{{{{{}}{}}}}}

 

[1] without relying on 3rd party tools that may not be installed, eg. on Linux 
you can use {{script}} (which is likely to be installed), but on windows you 
have no such generally available solution 

[2] without the password being showing exposed in the process list (which is 
why this was implemented to begin with).

  was:
Maven 3.2.1 provided a way to enter the password to be encrypted via 
interactive input for security reasons.

However the implementation uses the {{java.io.Console}} API with no fallback to 
stdin/stdout.

This makes it virtually impossible[1] to securely[2] encrypt a password from 
another program (for example a tool that will bootstrap a {{settings.xml}} for 
a corporate structure etc.

 
h3. Steps to reproduce

(to reproduce without any 3rd party tooling run, which is not how I would 
expect this to be called, but is here to demonstrate)

{{echo n myMasterPassword |mvn -encrypt-master-password}}
h4. Expected results

{{{base64HexString}}}
h4. Actual results

{{{}}}

 

[1] without relying on 3rd party tools that may not be installed, eg. on Linux 
you can use {{script}} (which is likely to be installed), but on windows you 
have no such generally available solution 

[2] without the password being showing exposed in the process list (which is 
why this was implemented to begin with).


> mvn --encrypt[--master]--password should work with redirected streams
> ---------------------------------------------------------------------
>
>                 Key: MNG-8398
>                 URL: https://issues.apache.org/jira/browse/MNG-8398
>             Project: Maven
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 3.9.9
>            Reporter: James Nord
>            Priority: Minor
>
> Maven 3.2.1 provided a way to enter the password to be encrypted via 
> interactive input for security reasons.
> However the implementation uses the {{java.io.Console}} API with no fallback 
> to stdin/stdout.
> This makes it virtually impossible[1] to securely[2] encrypt a password from 
> another program (for example a tool that will bootstrap a {{settings.xml}} 
> for a corporate structure etc.
>  
> h3. Steps to reproduce
> (to reproduce without any 3rd party tooling run, which is not how I would 
> expect this to be called, but is here to demonstrate)
> {{echo n myMasterPassword |mvn -encrypt-master-password}}
> h4. Expected results
> {{{base64HexString}}}
> h4. Actual results
> {{{{{{}}{}}}}}
>  
> [1] without relying on 3rd party tools that may not be installed, eg. on 
> Linux you can use {{script}} (which is likely to be installed), but on 
> windows you have no such generally available solution 
> [2] without the password being showing exposed in the process list (which is 
> why this was implemented to begin with).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to