[ 
https://issues.apache.org/jira/browse/MGPG-105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17824457#comment-17824457
 ] 

ASF GitHub Bot commented on MGPG-105:
-------------------------------------

cstamas commented on code in PR #77:
URL: https://github.com/apache/maven-gpg-plugin/pull/77#discussion_r1516406131


##########
src/main/java/org/apache/maven/plugins/gpg/AbstractGpgMojo.java:
##########
@@ -138,23 +144,22 @@ public abstract class AbstractGpgMojo extends 
AbstractMojo {
     private String keyname;
 
     /**
-     * GPG Signer only: Passes <code>--use-agent</code> or 
<code>--no-use-agent</code> to gpg. If using an agent, the
-     * passphrase is optional as the agent will provide it. For gpg2, specify 
true as --no-use-agent was removed in
-     * gpg2 and doesn't ask for a passphrase anymore. Deprecated, and better 
to rely on session "interactive" setting
-     * (if interactive, agent will be used, otherwise not).
-     *
-     * @deprecated
+     * All signers: whether gpg-agent is allowed to be used or not. If 
enabled, passphrase is optional, as agent may
+     * provide it. Have to be noted, that in "batch" mode, gpg-agent will be 
prevented to pop up pinentry
+     * dialogue, hence best is to "prime" the agent caches beforehand.
+     * <p>
+     * GPG Signer: Passes <code>--use-agent</code> or 
<code>--no-use-agent</code> option to gpg if it is version 2.1
+     * or older. Otherwise, will use an agent. In non-interactive mode gpg 
options are appended with
+     * <code>--pinentry-mode error</code>, preventing gpg agent to pop up 
pinentry dialogue. Agent will be able to
+     * hand over only cached passwords.
+     * <p>
+     * BC Signer: Allows signer to communicate with gpg agent. In 
non-interactive mode it uses
+     * <code>--no-ask</code> option with the <code>GET_PASSPHRASE</code> 
function. Agent will be able to hand over
+     * only cached passwords.
      */
-    @Deprecated
     @Parameter(property = "gpg.useagent", defaultValue = "true")
     private boolean useAgent;
 
-    /**
-     * Detect is session interactive or not.
-     */
-    @Parameter(defaultValue = "${settings.interactiveMode}", readonly = true)
-    private boolean interactive;

Review Comment:
   You mean like invoke plugin in interactive mode, while maven runs in batch 
mode?





> Stop propagating bad practices; but allow for "compat mode"
> -----------------------------------------------------------
>
>                 Key: MGPG-105
>                 URL: https://issues.apache.org/jira/browse/MGPG-105
>             Project: Maven GPG Plugin
>          Issue Type: Improvement
>            Reporter: Tamas Cservenak
>            Assignee: Tamas Cservenak
>            Priority: Major
>             Fix For: 3.2.0
>
>
> Storing any kind of "password-like" things on disk in files is bad (and no, 
> SecDispatcher IS a joke).
> Passphrase should be acquired only by two means:
>  * using gpg-agent (when on workstation locally) either to show pop up to ask 
> for pw and just ask it non-interactively fow cached password
>  * using env variables (when on CI where they are set up as "secrets") to go 
> fully off gpg-agent,
> -Plugin should in fact FAIL to warn user about presence of any secrets in 
> settings/properties/projects. That is wrong way.-
> This last stance has been softened (to provide full backward compatibility): 
> by default, plugin goes into "compat mode", will not fail if those above 
> violated. Still, introduced {{bestPractice}} configuration that IF set to 
> {{true}} makes plugin safe, and will fail if these principles are violated.



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

Reply via email to