wildfly-config.xml で使用している平文パスワードを、WildFly 18 でサポートされていると思われるマスクされたパスワードに置き換えたいと思います。elytron-tool を使用してマスクされたパスワードを生成しようとしました。
./elytron-tool.sh mask --salt 12345678 --iteration 12 --secret password
MASK-2FVkvIpoGRstP19QEZ76qE;12345678;12
次に、ハッシュ (「2FVkvIpoGRstP19QEZ76qE」) を base64 に変換し、wildfly-config.xml に追加しました。
<credentials>
<masked-password iteration-count="12" salt="12345678" masked-password="MkZWa3ZJcG9HUnN0UDE5UUVaNzZxRQ=="/>
</credentials>
<sasl-mechanism-selector selector="DIGEST-MD5"/>
ただし、次のように失敗します。
Caused by: java.security.spec.InvalidKeySpecException: javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher
at org.wildfly.security.password.impl.MaskedPasswordImpl.unmask(MaskedPasswordImpl.java:182)
at org.wildfly.security.password.impl.MaskedPasswordImpl.<init>(MaskedPasswordImpl.java:76)
at org.wildfly.security.password.impl.MaskedPasswordImpl.<init>(MaskedPasswordImpl.java:96)
at org.wildfly.security.password.impl.PasswordFactorySpiImpl.engineGeneratePassword(PasswordFactorySpiImpl.java:476)
at org.wildfly.security.password.PasswordFactory.generatePassword(PasswordFactory.java:151)
at org.wildfly.security.auth.client.ElytronXmlParser.lambda$parseMaskedPassword$55(ElytronXmlParser.java:2748)
... 21 more
Caused by: javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:936)
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:847)
at com.sun.crypto.provider.PBES1Core.doFinal(PBES1Core.java:416)
at com.sun.crypto.provider.PBEWithMD5AndDESCipher.engineDoFinal(PBEWithMD5AndDESCipher.java:316)
at javax.crypto.Cipher.doFinal(Cipher.java:2164)
at org.wildfly.security.password.impl.MaskedPasswordImpl.unmask(MaskedPasswordImpl.java:180)
したがって、マスクされたパスワードを生成するプロセスが間違っているようです。有効なマスクされたパスワードを生成するツール/シェル コマンドをアドバイスできますか? どうもありがとう