Connexion impossible: Unprocessable entity

Bonjour @Sylvain ,

Après une mise à jour de Fabmanager vers la dernière version (4.3.1 → 4.4.2), il m’est alors impossible de me connecter en tant qu’utilisateur ou administrateur. Une boite de dialogue avec l’erreur « Unprocessable Entity » apparait là où habituellement apparait « Connexion réussie » ou « Mauvais mot de passe »…

Une idée? Je suis pourtant dans un environnement de production avec docker et j’ai respecté scrupuleusement les commandes à executer comme pour chaque mise à jour.

Salut,
Est-ce que tu peux regarder des les cookies (Ctrl+Maj+i > Application[Chrome] / Stockage[Firefox] > Cookies) si tu as bien un cookie intitulé _Fab-manager_session ?

Bonjour, je me permet de rouvrir ce thread étant moi aussi atteint par la même erreur suite à une mise à jour de mon Fabmanager de la version 4.3.1 vers la version 4.4.2…

J’ai exactement la même erreur de « Unprocessable entity » avec dans le dev tools de Firefox :

Authentication failed: {« data »:{« status »:422,« error »:« Unprocessable Entity »},« status »:422,« config »:{« method »:« POST »,« transformRequest »:[null],« transformResponse »:[null],« jsonpCallbackParam »:« callback »,« url »:« /users/sign_in.json »,« data »:{« user »:{« email »:« @****« ,« password »: »« }},« headers »:{« Accept »:« application/json, text/plain, / »,« Content-Type »:« application/json;charset=utf-8 »,« X-XSRF-TOKEN »: »****** »},« cached »:false},« statusText »:« Unprocessable Entity »,« xhrStatus »:« complete »} application-63bd1e4ad202ac790b5e91e9db68c525146f570df700a207b43a27ecba980743.js:1913:7499 login https://fabmanager.paris-valdeseine.archi.fr/assets/application-63bd1e4ad202ac790b5e91e9db68c525146f570df700a207b43a27ecba980743.js:1913
processQueue https://fabmanager.paris-valdeseine.archi.fr/assets/application-63bd1e4ad202ac790b5e91e9db68c525146f570df700a207b43a27ecba980743.js:40
scheduleProcessQueue https://fabmanager.paris-valdeseine.archi.fr/assets/application-63bd1e4ad202ac790b5e91e9db68c525146f570df700a207b43a27ecba980743.js:40
$digest https://fabmanager.paris-valdeseine.archi.fr/assets/application-63bd1e4ad202ac790b5e91e9db68c525146f570df700a207b43a27ecba980743.js:41
$apply https://fabmanager.paris-valdeseine.archi.fr/assets/application-63bd1e4ad202ac790b5e91e9db68c525146f570df700a207b43a27ecba980743.js:41
done https://fabmanager.paris-valdeseine.archi.fr/assets/application-63bd1e4ad202ac790b5e91e9db68c525146f570df700a207b43a27ecba980743.js:39
completeRequest https://fabmanager.paris-valdeseine.archi.fr/assets/application-63bd1e4ad202ac790b5e91e9db68c525146f570df700a207b43a27ecba980743.js:39
onload https://fabmanager.paris-valdeseine.archi.fr/assets/application-63bd1e4ad202ac790b5e91e9db68c525146f570df700a207b43a27ecba980743.js:39

Pourtant voici ma configuration nginx :

location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Client-Verify SUCCESS;
proxy_set_header X-Client-DN $ssl_client_s_dn;
proxy_set_header X-SSL-Subject $ssl_client_s_dn;
proxy_set_header X-SSL-Issuer $ssl_client_i_dn;
proxy_read_timeout 1800;
proxy_connect_timeout 1800;
}

Une idée de comment résoudre cela ? :confused:

Salut,
Est-ce que tu peux regarder des les cookies (Ctrl+Maj+i > Application[Chrome] / Stockage[Firefox] > Cookies) si tu as bien un cookie intitulé _Fab-manager_session ?

Non, celui-ci s’appelle _fablab_session

PS: Restons sur cette conversation plus axé sur le sujet ^^

Ok, alors en premier lieu, as-tu simplement essayé de rafraîchir la page (avec F5) ?
Sinon, cela veut dire qu’il y a bien un problème avec ta configuration nginx… En effet, si tu n’utilises qu’un seul nginx (en l’occurrence celui fourni avec FM), ta configuration n’est pas bonne. En effet, les directives proxy_set_header X-Forwarded-Proto devrait se situer dans le bloc location @puma et pas location /

1 « J'aime »

Tu as raison, j’ai pris la configuration de mon nginx standalone alors que j’utilise celui de fab-manager…

Voici donc la configuration juste :

upstream puma {
  server fabmanager:3000;
}

server {
  listen 443 ssl;
  server_name fabmanager.paris-valdeseine.archi.fr;
  root /usr/src/app/public;
  ssl on;
  ## with your ssl certificate
  #ssl_certificate /etc/nginx/conf.d/ssl/MAIN_DOMAIN.crt;
  #ssl_certificate_key /etc/nginx/conf.d/ssl/MAIN_DOMAIN.deprotected.key;
  ##
  ## with letsencrypt certificate (free)
  ssl_certificate_key /etc/letsencrypt/live/fabmanager.paris-valdeseine.archi.fr/privkey.pem;
  ssl_certificate /etc/letsencrypt/live/fabmanager.paris-valdeseine.archi.fr/fullchain.pem;
  ssl_trusted_certificate /etc/letsencrypt/live/fabmanager.paris-valdeseine.archi.fr/chain.pem;
  ##
  ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
  ssl_prefer_server_ciphers on;
  ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !MD5 !EXP !DSS !PSK !SRP !kECDH !CAMELLIA !RC4 !SEED';
  ssl_session_cache shared:SSL:50m;
  ssl_session_tickets off;
  ssl_session_timeout 1d;
  ssl_dhparam /etc/nginx/conf.d/ssl/dhparam.pem;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;


  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  ## required by letsencrypt to generate the certificat
  location /.well-known/acme-challenge {
    root /etc/letsencrypt/webrootauth;
    default_type "text/plain";
  }
  ##

  try_files $uri/index.html $uri @puma;
  location @puma {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://puma;
  }

  client_max_body_size 4G;
  keepalive_timeout 10;

  error_page 500 502 504 /500.html;
  error_page 503 @503;
  # Return a 503 error if the maintenance page exists.
  if (-f /usr/src/app/public/maintenance.html) {
    return 503;
  }

  location @503 {
    # Serve static assets if found.
    if (-f $request_filename) {
      break;
    }

    # Set root to the shared directory.
    root /usr/src/app/public/;
    rewrite ^(.*)$ /maintenance.html break;
  }

  # no spam bot
  if ($http_referer ~* (guardlink.org|free-share-buttons|social-buttons|buy-cheap-online.info|social-buttons.com|free-share-buttons.com|darodar.com|blackhatworth.com|hulfingtonpost.com|priceg.com|semalt.com|imaspammer.com|iedit.ilovevit$

}


server {
  listen 80;
  server_name fabmanager.paris-valdeseine.archi.fr fablab.paris-valdeseine.archi.fr;
  rewrite ^ https://fabmanager.paris-valdeseine.archi.fr$request_uri? permanent;
}

Finalement j’ai ajouté la ligne proxy_set_header X-Forwarded-Proto $scheme; comme mentionné précédement et cela fonctionne ! Merci encore et désolé ^^

1 « J'aime »