mongodbrestheart

Restheart authenticator plugin for mongoRealmAuthenticator loading at startup


On windows, I am trying to switch to the recommended Mongo Realm Authenticator as suggested in the documentation, however, when setting up my restheart.yml file exactly as shown in the documentation I receive this error on startup:

"ERROR org.restheart.plugins.PluginsFactory - Error injecting dependency to AuthMechanism basicAuthMechanism: Authenticator mongoRealmAuthenticator not found"

Here is the relevant section of my restheart.yml for reference.

auth-mechanisms:
  tokenBasicAuthMechanism:
    enabled: true
  basicAuthMechanism:
    enabled: true
    authenticator: mongoRealmAuthenticator
  digestAuthMechanism:
    enabled: false
    realm: RESTHeart Realm
    domain: localhost
    authenticator: simpleFileAuthenticator
  identityAuthMechanism:
    enabled: false
    username: admin
    roles:
      - admin
      - user

authenticators:
  mongoRealmAuthenticator:
    users-db: restheart
    users-collection: users
    prop-id: _id
    prop-password: password
    json-path-roles: $.roles
    bcrypt-hashed-password: true
    bcrypt-complexity: 12
    create-user: true
    create-user-document: '{"_id": "admin", "password": "$2a$12$lZiMMNJ6pkyg4uq/I1cF5uxzUbU25aXHtg7W7sD2ED7DG1wzUoo6u", "roles": ["admin"]}'
    # create-user-document.password must be hashed when bcrypt-hashed-password=true
    # default password is 'secret'
    # see https://bcrypt-generator.com but replace initial '$2y' with '$2a'
    cache-enabled: false
    cache-size: 1000
    cache-ttl: 60000
    cache-expire-policy: AFTER_WRITE
  simpleFileAuthenticator:
    enabled: true
    conf-file: {{{users-conf-file}}}

Restheart version is 5.0, MongoDb version 4.2, Windows 10

The simpleFileAuthenticator works correctly, it is only MongoRealmAuthenticator that causes problems when I try to use it as an authenticator for any auth-mechanism.


Solution

  • mongoRealmAuthenticator is available from RESTHeart 5.1 (see release notes here).

    Update to latest release to fix it.