Skip to content

Cannot authenticate anymore once I clear all the data #798

Closed

Description

@mohamedmansour

Hello,

When I cleared all the data in /config /data and /.db, I wanted to start again fresh, doesn't allow me to login. For some reason

  1. it still persisted the old authentication details, when I log in with them, it just goes back to registration page
  2. I can successfully reset my password, it comes with the reset url, and I change the password and accepts it, but again, it goes back to the registration page.

My config is the following:

{
  "root": "/var/www/solid.mysite/data",
  "port": "8443",
  "serverUri": "https://solid.mysite.com/",
  "webid": true,
  "mount": "/",
  "configPath": "/var/www/solid.mysite/config",
  "configFile": "/var/www/solid.mysite/config.json",
  "dbPath": "/var/www/solid.mysite/.db",
  "sslKey": "/etc/letsencrypt/live/solid.mysite.com/privkey.pem",
  "sslCert": "/etc/letsencrypt/live/solid.mysite.com/fullchain.pem",
  "multiuser": false,
  "corsProxy": "/proxy",
  "email": {
    "host": "smtp.gmail.com",
    "port": "465",
    "secure": true,
    "auth": {
      "user": "admin@mysite.com",
      "pass": "plain-text-password"
    }
  }
}

My nginx proxy is as follows:

server {
  server_name solid.mysite.com;

  listen 443 ssl; # managed by Certbot
  ssl_certificate /etc/letsencrypt/live/solid.mysite.com/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/solid.mysite.com/privkey.pem; # managed by Certbot
  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    proxy_buffering off;
    proxy_ssl_certificate /etc/letsencrypt/live/solid.mysite.com/fullchain.pem;
    proxy_ssl_certificate_key /etc/letsencrypt/live/solid.mysite.com/privkey.pem;
    proxy_pass https://localhost:8443/;
  }
}

server {
  listen 80;
  server_name solid.mysite.com;
  return 404; # managed by Certbot
}

Then I run it

solid start --config-file config.json -v

The error message when I try to access a resource is the following:

solid:ACL Using ACL https://solid.mysite.com/.acl for ./profile/card +8s
  solid:permissions Checking access for agent https://solid.mysite.com/profile/card#me +8s
  solid:permissions No groups authorizations exist +0ms
  solid:ACL Read access denied to https://solid.mysite.com/profile/card#me +2ms
  solid:server Error page because of: { [HTTPError: Access to https://solid.mysite.com/profile/card denied for https://solid.mysite.com/profile/card#me]
  name: 'HTTPError',
  message: 'Access to https://solid.mysite.com/profile/card denied for https://solid.mysite.com/profile/card#me',
  status: 403 } +0ms
  solid:server Display no-permission for https://solid.mysite.com/profile/card +1ms

There seems to be something fishy in where it stores the state, I cant seem to clean or clear it. Any ideas so I can start from fresh, including the model creation.

Activity

  1. dmitrizagidulin commented on Sep 29, 2018

    @dmitrizagidulin
    Contributor

    @mohamedmansour - couple of notes.
    The .db/ directory is where a user account object (along with credentials) is stored, so deleting it breaks login.
    Some of the javascript apps (like the data browser, user account page, etc) also store authentication state in cookies and in localStorage, so you want to clear that as well.

  2. dmitrizagidulin commented on Sep 29, 2018

    @dmitrizagidulin
    Contributor

    As far as starting fresh, you’ll want to clear the following things:

    1. Delete the .db/ directory. This clears all user accounts (and app client registrations).
    2. Clear cookies and browser localStorage
    3. Delete your account subdirectory (or if you want to preserve the data there, delete the root .acl and .meta files.

    Afterwards, go ahead and Register the account again.

  3. mohamedmansour commented on Sep 29, 2018

    @mohamedmansour
    ContributorAuthor

    @dmitrizagidulin sorry I should have been more clearer, all cookies and localStorage on the browser already cleared. It is in a stuck state that I cannot recover. I even took out the nginx proxy thinking it is that fault.

    I actually removed all the /.db /config /data folders and opened in incognito.

  4. mohamedmansour commented on Sep 29, 2018

    @mohamedmansour
    ContributorAuthor

    @dmitrizagidulin Here is how I am doing it:

    Config:

    {
      "root": "/var/www/solid.mysite/data",
      "port": "8443",
      "serverUri": "https://solid.mysite.com:8443/",
      "webid": true,
      "mount": "/",
      "configPath": "/var/www/solid.mysite/config",
      "configFile": "/var/www/solid.mysite/config.json",
      "dbPath": "/var/www/solid.mysite/.db",
      "sslKey": "/etc/letsencrypt/live/solid.mysite.com/privkey.pem",
      "sslCert": "/etc/letsencrypt/live/solid.mysite.com/fullchain.pem",
      "multiuser": false,
      "corsProxy": "/proxy",
      "email": {
        "host": "smtp.gmail.com",
        "port": "465",
        "secure": true,
        "auth": {
          "user": "admin@mysite.com",
          "pass": "plain-text-password"
        }
      }
    }
    

    Actions to remove everything:

    root@localhost:/var/www/solid.mysite# rm -rf config/* data/* .db/*
    root@localhost:/var/www/solid.mysite# ls -al
    total 24
    drwxr-xr-x 5 root  root     4096 Sep 29 21:54 .
    drwxr-xr-x 7 root  root     4096 Sep 29 18:39 ..
    drwxr-xr-x 2 solid www-data 4096 Sep 29 21:57 config
    -rw-r--r-- 1 solid www-data  701 Sep 29 21:54 config.json
    drwxr-xr-x 3 solid www-data 4096 Sep 29 21:57 data
    drwxr-xr-x 2 solid www-data 4096 Sep 29 21:57 .db
    

    Run the server:

    root@localhost:/var/www/solid.mysite# solid start --config-file config.json -v
      solid:settings Server URI: https://solid.mysite.com:8443/ +0ms
      solid:settings Auth method: oidc +2ms
      solid:settings Db path: /var/www/solid.mysite/.db +0ms
      solid:settings Config path: /var/www/solid.mysite/config +1ms
      solid:settings Suffix Acl: .acl +0ms
      solid:settings Suffix Meta: .meta +0ms
      solid:settings Filesystem Root: /var/www/solid.mysite/data/ +0ms
      solid:settings Allow WebID authentication: true +0ms
      solid:settings Live-updates: true +0ms
      solid:settings Multi-user: false +0ms
      solid:settings Suppress default data browser app: undefined +1ms
      solid:settings Default data browser app file path: default +0ms
      solid:settings CORS proxy listening at /proxy?uri={uri} +13ms
      solid:settings Base URL (--mount): / +11ms
      solid:settings SSL Private Key path: /etc/letsencrypt/live/solid.mysite.com/privkey.pem +1ms
      solid:settings SSL Certificate path: /etc/letsencrypt/live/solid.mysite.com/fullchain.pem +0ms
    Solid server () running on https://localhost:8443/
    Press <ctrl>+c to stop
      solid:authentication No provider keys found, generating fresh ones +18ms
      solid:authentication Provider keychain initialized +1s
      solid:authentication Not sleeping before client registration... +1ms
      solid:authentication Client not present for issuer https://solid.mysite.com:8443/, initializing new client +1ms
      solid:authentication Registering new client for issuer  https://solid.mysite.com:8443/ +1ms
      solid:authentication Local RP client initialized +112ms
      solid:accounts Account solid.mysite.com is not available (for /) +4s
      solid:index Looking for index in / +5ms
      solid:index Found an index for current path +1ms
      solid:ACL Using ACL https://solid.mysite.com:8443/index.html.acl for ./index.html +30ms
      solid:permissions Checking access for agent undefined +0ms
      solid:permissions Public access allowed for https://solid.mysite.com:8443/index.html +0ms
      solid:permissions Checking access for agent null +1ms
      solid:permissions Public access allowed for https://solid.mysite.com:8443/index.html +0ms
      solid:permissions Checking access for agent null +0ms
      solid:permissions No groups authorizations exist +0ms
      solid:permissions Checking access for agent null +1ms
      solid:permissions No groups authorizations exist +0ms
      solid:permissions Checking access for agent null +0ms
      solid:permissions No groups authorizations exist +0ms
      solid:permissions Checking access for agent undefined +0ms
      solid:permissions Public access allowed for https://solid.mysite.com:8443/index.html +0ms
      solid:permissions Checking access for agent undefined +0ms
      solid:permissions No groups authorizations exist +0ms
      solid:permissions Checking access for agent undefined +0ms
      solid:permissions No groups authorizations exist +0ms
      solid:permissions Checking access for agent undefined +0ms
      solid:permissions No groups authorizations exist +0ms
      solid:ACL Permissions on https://solid.mysite.com:8443/ for (none): read +7ms
      solid:ACL Permissions on https://solid.mysite.com:8443/ for public: read +0ms
      solid:get / on solid.mysite.com +3ms
      solid:handlers GET -- Reading /var/www/solid.mysite/data/index.html +2ms
      solid:ACL Using ACL https://solid.mysite.com:8443/.acl for ./favicon.ico +231ms
      solid:permissions Checking access for agent undefined +239ms
      solid:permissions No groups authorizations exist +0ms
      solid:ACL Read access denied to (none) +2ms
      solid:server Error page because of: { [HTTPError: Access to https://solid.mysite.com:8443/favicon.ico requires authorization]
      name: 'HTTPError',
      message: 'Access to https://solid.mysite.com:8443/favicon.ico requires authorization',
      status: 401 } +0ms
      solid:server Display login-required for https://solid.mysite.com:8443/favicon.ico +3ms
      solid:ACL Using ACL https://solid.mysite.com:8443/.acl for ./favicon.ico +2s
      solid:permissions Checking access for agent undefined +2s
      solid:permissions No groups authorizations exist +0ms
      solid:ACL Read access denied to (none) +3ms
      solid:server Error page because of: { [HTTPError: Access to https://solid.mysite.com:8443/favicon.ico requires authorization]
      name: 'HTTPError',
      message: 'Access to https://solid.mysite.com:8443/favicon.ico requires authorization',
      status: 401 } +0ms
      solid:server Display login-required for https://solid.mysite.com:8443/favicon.ico +1ms
      solid:accounts Canceling account creation, https://solid.mysite.com:8443/profile/card#me already exists +13s
      solid:ACL Using ACL https://solid.mysite.com:8443/.acl for ./favicon.ico +111ms
      solid:permissions Checking access for agent undefined +13s
      solid:permissions No groups authorizations exist +0ms
      solid:ACL Read access denied to (none) +4ms
      solid:server Error page because of: { [HTTPError: Access to https://solid.mysite.com:8443/favicon.ico requires authorization]
      name: 'HTTPError',
      message: 'Access to https://solid.mysite.com:8443/favicon.ico requires authorization',
      status: 401 } +0ms
      solid:server Display login-required for https://solid.mysite.com:8443/favicon.ico +1ms
    

    In Chrome Incognito
    image

  5. Sparxmith commented on Sep 29, 2018

    @Sparxmith

    @mohamedmansour I'm going to use a Docker image to Repro the issue. What OS and/or Distro are you using? (It shouldn't matter, but I like to control as many variables as is possible.)

  6. mohamedmansour commented on Sep 29, 2018

    @mohamedmansour
    ContributorAuthor

    Thanks to gitter, it was hidden files that fooled me :( Thanks @Sparxmith and @dmitrizagidulin rm -Rf doesn't remove hidden files.

    Main reason why I did it like that cause I didn't want to reset the folder permission, thought it was quicker, but turned out to waste so much time on my end!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions