Simplicité 5.3 : erreur lors de la première connexion

Request description

Bonjour,

J’ai installé une nouvelle instance Simplicité 5.3 avec Docker mais lorsque j’essaie de me connecter pour la première fois avec le login “designer” et le mot de passe “simplicite” j’ai une erreur 401.

Steps to reproduce

  1. J’ai créé un fichier docker-compose.yml avec le contenu suivant :
version: "3"
services:
  db:
    image: postgres:latest
    restart: always
    container_name: myinstance-postgres-database
    environment:
      POSTGRES_USER: "simplicite"
      POSTGRES_PASSWORD: "simplicite"
      POSTGRES_DB: "simplicite"
    # ZZZ Uncomment these 2 lines only if you want to access to the database from the host machine ZZZ
    #ports:
    #  - 127.0.0.1:5432:5432
    volumes:
      - myinstance-postgres-db:/var/lib/postgresql/data
  simplicite:
    image: registry.simplicite.io/platform:5.3
    restart: always
    container_name: myinstance-postgres-webapp
    environment:
      DB_SETUP: "true"
      DB_VENDOR: "postgresql"
      DB_HOST: db
      DB_USER: "simplicite"
      DB_PASSWORD: "simplicite"
      DB_NAME: "simplicite"
      DB_WAIT: 10
    ports:
      - 80:8080
    volumes:
      - myinstance-postgres-git:/usr/local/tomcat/webapps/ROOT/WEB-INF/git
    depends_on:
      - db
volumes:
  myinstance-postgres-db:
  myinstance-postgres-git:
  1. Ensuite j’exécute la commande : sudo docker-compose up -d
  2. Je me connecte avec le login “designer” et le mot de passe “simplicite”. J’ai l’erreur suivante :

image

Et dans les logs :

Est-ce que la procédure d’installation a changé en 5.3 ?

Technical information

Instance /health

[Platform]
Status=OK
Version=5.3.0
BuiltOn=2023-04-24 18:51
Git=5.3/2addcff7890240c0155235a6b8d6a363b7fa14c3
Encoding=UTF-8
EndpointIP=
EndpointURL=http://29743ae9e4cb:8080
TimeZone=UTC
SystemDate=2023-04-28 10:55:17

[Application]
ApplicationVersion=1.0.0
ContextPath=
ContextURL=
ActiveSessions=0
TotalUsers=3
EnabledUsers=1
LastLoginDate=

[Server]
ServerInfo=Apache Tomcat/9.0.74
ServerType=WEB
ServerActiveSessions=9
ServerSessionTimeout=30

[OS]
Name=Linux
Architecture=amd64
Version=3.10.0-1160.88.1.el7.x86_64
DockerImageName=centos7
SystemEncoding=UTF-8

[JavaVM]
Version=17.0.7
Vendor=Eclipse Adoptium
VMName=OpenJDK 64-Bit Server VM
VMVersion=17.0.7+7
ScriptEngine=rhino
ScriptEngineVersion=Rhino 1.7.13 2020 09 02
HeapFree=71473
HeapSize=317440
HeapMaxSize=2007040
TotalFreeSize=1761073

[Cache]
ObjectCache=37
ObjectCacheMax=10000
ObjectCacheRatio=0
ProcessCache=37
ProcessCacheMax=10000
ProcessCacheRatio=0
APIGrantCache=0
APIGrantCacheMax=1000
APIGrantRatio=0

[Database]
Vendor=3
ProductName=PostgreSQL
ProductVersion=13.2 (Debian 13.2-1.pgdg100+1)
DriverName=PostgreSQL JDBC Driver
DriverVersion=42.6.0
DBDate=2023-04-28 10:55:17
DBDateOffset=0
DBPatchLevel=5;P03;3a4174743492109efd723fd0c8ccda1b
UsingBLOBs=true

[Healthcheck]
Date=2023-04-28 10:55:18
ElapsedTime=8

Non la 5.3 est iso 5.2 en termes de déploiement.

Ce symptôme ne me dit rien.

Et le Docker compose semble correspondre au test “usine” qu’on fait sur PostgreSQL

Voici celui qu’on utilise:

version: "3"
services:
  database:
    image: postgres:14
    restart: always
    container_name: database
    environment:
      POSTGRES_USER: "simplicite"
      POSTGRES_PASSWORD: "simplicite"
      POSTGRES_DB: "simplicite"
    volumes:
      - data:/var/lib/postgresql/data
  simplicite:
    image: simplicite/platform:5.3
    restart: always
    container_name: simplicite
    environment:
      DB_SETUP: "true"
      DB_VENDOR: "postgresql"
      DB_HOST: "database"
      DB_USER: "simplicite"
      DB_PASSWORD: "simplicite"
      DB_NAME: "simplicite"
      DB_WAIT: 100
      DB_WAIT_INTERVAL: 10
    ports:
      - 127.0.0.1:8443:8443
    depends_on:
      - database
volumes:
  data:

Je viens de relancer ce test (en partant de zéro) et j’ai bien pu me connecter en designer en changeant le password initial:

PS: test refait avec postgres:latest (i.e. un PostgreSQL 15) au lieu de postgresql:14 ci-dessus.

Pas de pb non plus:

En effet, sur WSL ça marche bien je n’ai pas d’erreur, mais sur des VM CentOS j’ai toujours l’erreur :confused:
En 5.2 je n’ai pas l’erreur que ce soit sur WSL ou les VM CentOS, étrange. Je vais faire d’autres tests, ça doit venir de mes VM, désolé ^^
Merci David

Tu veux dire machine hôte sur CentOS ? Quelle version ?

Je pose la question car on fait nos tests usine sur un AlmaLinux 8, i.e. un CentOS 8 (un peu plus stable)
On déploie aussi régulièrement sur des hôtes CentOS 7 sans pb…

Peut être une histoire de SELinux actif (et à un niveau trop élevé) sur cette machine hôte ?
Ou un filtrage type WAF qui retire des choses clé dans les requêtes HTTP (ex: le cookie de session) ?
etc.

Oui, c’est un CentOS Linux release 7.9.2009 (Core)

Peut être une histoire de SELinux actif (et à un niveau trop élevé) sur cette machine hôte ?
Ou un filtrage type WAF qui retire des choses clé dans les requêtes HTTP (ex: le cookie de session) ?

Je vais regarder, merci ^^
(Mais j’ai d’autres instances Simplicité 5.1 et 5.2 qui tournent sur la même machine sans cette erreur, l’erreur serait présente pour les autres aussi je pense :thinking: )

Il n’y a pas de différence de packaging entre les images (à jour) Docker 5.x
C’est la même image “server” (=JDK+Tomcat), la seule différence c’est la webapp Simplicité (dont la structure est similaire)

Finalement j’ai pu me connecter mais uniquement en https (reverse proxy + port 8443 ou en direct sur le port 8444). Quand j’essaie de me connecter en http (port 8080) j’ai l’erreur 401.

SELinux est désactivé et nous n’avons pas de WAF.

OK je regarderai si j’arrive à reproduire le cas. Dans nos tests usine Docker on utilise toujours le 8443 et un reverse proxy https://

J’ai testé en lançant en local une 5.3.2-preview (i.e. la prochaine 5.3 mais pas très différente à ce stade de la 5.3.1 releasée) et je n’ai pas de pb avec le port 8080.

J’ai ensuite testé sur un container Docker de version 5.3.1 exposant le port 8080 (démarré sur un serveur Linux dont je forwarde le port 8080 via SSH en local sur le port 8181), pas de pb non plus:

Bref je ne vois pas trop d’où pourrait venir ton pb “SSL-only”…

En local ça fonctionne aussi de mon côté.
Je viens de faire ton second test en forwardant le port 8080 sur le port local 8181, ça marche aussi de mon côté :sweat_smile:

Mais quand je me connecte avec l’IP du serveur et le port j’ai l’erreur :no_mouth:

Https port 8444 (dans mon docker compose j’ai 8445:8444), c’est ok

Effectivement je reproduis le symptôme décris en accédant directement à l’URL en http:// constituée de l’adresse IP (ou du hostname) du serveur et du port 8080

Ca doit avoir un rapport avec cette config qui est effectivement différente entre la 5.2 et la 5.3 dans le META-INF/context.xml:

Car on voit dans la console “Network” du navigateur que le cookie de session n’est pas dans les requêtes suivante de celle à / (qui redirige sur /ui/) qui initie la session, d’où l’erreur 401

Avec une URL en localhost et des URLs en https:// ça doit être passant pour d’obscures raisons.

Bref, sur le web moderne il faut oublier le protocole http://

1 Like

ok, on a une explication ! :sweat_smile:
merci d’avoir regardé

La notion de SameSite ne devrait logiquement pas avoir de lien avec au protocole d’appel…

Les navigateurs modernes sont de plus en plus allergiques au http:// notamment dans le cas où ou il y a des cookies.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.