Asqatasun 5.0.0-rc.1 on debian 10 and mysql 8.0.23

Bonjour :slight_smile: ,

Nous souhaitons installer votre outil en interne afin d’auditer notre logiciel.
N’ayant pas vue de prérequis de version linux/unix à utiliser, je suis partie sur la dernière de debian (version 10) sur lequel j’ai installé mysql 8.

Lorsque je configure asqatasun et souhaite le démarrer, j’ai cette erreur :
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed

Je me dit, ok j’ai un problème pour que java se connecte à ma base. J’ai donc pris DBeaver pour voir si j’ai le même problème et c’est le cas.
Par contre, sur dbeaver je peux configurer le pilote afin d’ajouter “allowPublicKeyRetrieval=true”

Je me dis, OK je vais modifier le fichier asqatasun-db.service.env pour ajouter ce paramètre et avoir :

DB_DRIVER=“mysql”
DB_HOST=“localhost”
DB_PORT=“3306”
DB_DATABASE=“asqatasun”
DB_USER=“asqatasunDatabaseUserLogin”
DB_PASSWORD=“asqatasunDatabaseUserP4ssword”

cat >/etc/systemd/system/asqatasun-db.service.env <<EOF
JDBC_URL=jdbc:${DB_DRIVER}://${DB_HOST}:${DB_PORT}/${DB_DATABASE}?allowPublicKeyRetrieval=true
JDBC_USER=${DB_USER}
JDBC_PASSWORD=${DB_PASSWORD}
EOF
chmod 600 /etc/systemd/system/asqatasun-db.service.env

je démarre de nouveau asqatasun et j’ai une nouvelle erreur. quand je regarde le journal, je vois qu’il est impossible d’ajouter une option comme je souhaite le faire pour la connexion jdbc car vous ajoutez implicitement des options.

jdbcUrl -> jdbc:mysql://localhost:3306/asqatasun?allowPublicKeyRetrieval=true?useSSL=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8,

Y a t il un moyen d’ajouter un paramètre au jdbc_url ?
si non, comment faire ? ouvrir le fichier .war et ajouter cette option en dur comme le useSSL,useUnicode,… mais dans quel fichier se trouve ce bout de code ?

Merci de l’aide que vous pouvez apporter et bon courage.

Bonjour @csi,

Ticket ouvert pour permettre de configurer facilement ces options de l’URL JDBC : https://gitlab.com/asqatasun/Asqatasun/-/issues/560

Immédiatement, le mieux c’est de modifier le fichier suivant (ligne 51) et de compiler Asqatasun pour obtenir un .war modifié :
engine/asqatasun-persistence/src/main/java/org/asqatasun/persistence/config/PersistenceConfig.java

public class PersistenceConfig extends PersistenceCommonConfig{

    private static final String URL_ENCODING_OPTION_SUFFIX = "?useSSL=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8";

La modification du .war directement, me semble compliqué. Car, c’est dans le fichier WEB-INF/lib/asqatasun-persistence-5-SNAPSHOT.jar contenu dans le .war. Ensuite c’est le fichier org/asqatasun/persistence/config/PersistenceConfig.class dans ce .jar qui t’intéresse, mais comme c’est du code compilé, ce n’est pas la bonne solution de vouloir modifier ce fichier…