O Maven permite que você crie e armazene senhas criptografadas para usar na autenticação automática do servidor:
# Create an encrypted master password, to be stored in ~/.m2/settings-security.xml
$ mvn -emp foobar
{+uIIU4cDH3oHt0uEY0nU9nAHrytSmxEyhnmU60G0YSI=}
# Create an encrypted password, to be used in ~/.m2/settings.xml
$ mvn -ep barfoo
{f31+d128wDQBsc2Z7oS0/Gby5/2SzDaM1jskjL6JOJO=}
Embora a operação acima seja rápida e fácil, a principal desvantagem disso é que você deve inserir a senha como parte do comando. Coisas como o buffer de rolar para trás do shell ou o histórico podem mantê-los em texto simples, expondo-os a olhos maliciosos.
Uma maneira de evitar esse problema de segurança é envolver a criptografia de senha em um pequeno script de shell que solicitará que você insira uma senha e, em seguida, passe-a ao maven, ho prejudicial echo ou histórico envolvido. Aqui está um exemplo:
#!/bin/bash
##
## Encrypt your maven password without leaving any trace in the shell history
##
## Carlo Sciolla skuro@skuro.tk
## v1 - 20131205
##
MVN=`which mvn`
OUT="pass> "
read -s -p "$OUT" PASS
mvn -ep "$PASS"
A parte principal do script acima é a read
invocação, que usa -s
para desabilitar o eco e -p
definir um prompt personalizado. A senha será temporariamente armazenada na PASS
variável e usada pelo maven.
Aqui está um exemplo de execução do script acima:
$ mvnep
pass> {nGevxp+6Oz8HWVfyHbqz1sGvtNEE10skAbFn6un0tPc=}