Class JdbcDbUserDao

java.lang.Object
io.inversion.action.security.AuthAction.JwtUserDao
io.inversion.jdbc.JdbcDbUserDao
All Implemented Interfaces:
io.inversion.action.security.AuthAction.UserDao

public class JdbcDbUserDao extends io.inversion.action.security.AuthAction.JwtUserDao
Looks up a User from the configured JdbcDb supporting user/group/role permissioning.

Usage requires a password encryption "salt" value be configured either explicitly or via a $name.salt environment var or system prop.

In this model, Users, Groups, and Roles can all be assigned Permissions. Users can Groups can both be assigned Roles and Users can be assigned to Groups. This means users can be assigned permissions through any one of the following relationship paths.

  1. user-to-permission
  2. user-to-group-to-permission
  3. user-to-role-to-permission
  4. user-to-group-to-role-to-permission
See users-h2.ddl for full underlying schema
  • Field Details

    • name

      protected String name
      Optional name param that is used for $name.salt parameter configuration.
    • db

      protected JdbcDb db
    • salt

      protected String salt
  • Constructor Details

    • JdbcDbUserDao

      public JdbcDbUserDao()
    • JdbcDbUserDao

      public JdbcDbUserDao(JdbcDb db)
  • Method Details

    • strongHash

      public static String strongHash(Object salt, String password) throws io.inversion.ApiException
      Throws:
      io.inversion.ApiException
    • weakHash

      public static String weakHash(String password)
    • checkPassword

      protected boolean checkPassword(String actual, String supplied)
    • getUser

      public io.inversion.User getUser(io.inversion.action.security.AuthAction action, String username, String suppliedPassword, String apiName, String tenant) throws io.inversion.ApiException
      Specified by:
      getUser in interface io.inversion.action.security.AuthAction.UserDao
      Overrides:
      getUser in class io.inversion.action.security.AuthAction.JwtUserDao
      Throws:
      io.inversion.ApiException
    • findGRP

      protected io.inversion.utils.Rows findGRP(Connection conn, int userId, String api, String tenant) throws Exception
      Throws:
      Exception
    • withDb

      public JdbcDbUserDao withDb(JdbcDb db)
    • getDb

      public JdbcDb getDb()
    • setDb

      public void setDb(JdbcDb db)
    • withSalt

      public JdbcDbUserDao withSalt(String salt)
    • getSalt

      public String getSalt()
    • getName

      public String getName()
    • setName

      public void setName(String name)