Hi everyone,
I need to add the ability to load users, passwords etc in a 3rd party
plugin.
It currently requires a userid and password in the <configuration> section
of the pom (ugh), ideally, I'd like to look them up from the <servers>
section of settings.xml, and even better yet, make use of being able to
decrypt passwords.
So I did what we all do, and go and look to see what has been done before,
and I came across this:
/maven-scm/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java:
/**
* When this plugin requires Maven 3.0 as minimum, this component can
be removed and o.a.m.s.c.SettingsDecrypter be
* used instead.
*/
@Component( hint = "mng-4384" )
private SecDispatcher secDispatcher;
and:
/maven-scm/maven-scm-plugin/src/main/resources/META-INF/plexus/components.xml:
<component-set>
<components>
<component>
<role>org.sonatype.plexus.components.sec.dispatcher.SecDispatcher</role>
<role-hint>mng-4384</role-hint>
<implementation>org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher</implementation>
<requirements>
<requirement>
<role>org.sonatype.plexus.components.cipher.PlexusCipher</role>
<role-hint>mng-4384</role-hint>
<field-name>_cipher</field-name>
</requirement>
</requirements>
<configuration>
<_configuration-file>~/.m2/settings-security.xml</_configuration-file>
</configuration>
</component>
<component>
<role>org.sonatype.plexus.components.cipher.PlexusCipher</role>
<role-hint>mng-4384</role-hint>
<implementation>org.sonatype.plexus.components.cipher.DefaultPlexusCipher</implementation>
</component>
</components>
</component-set>
So, I'm left with the question, what is the current, correct way of
accessing userids, passwords (encrypted or not)?
I could simply, copy the same approach, but I'd prefer not too, as it's a
good opportunity 'to do it right'.
Any suggestions?
Would we then consider updating the existing maven plugins to support this?
@Stephen, sounds like a good idea for a blog entry? ;)