首页 > 解决方案 > 如何从 PAC4J 框架中使用 DbProfileService

问题描述

我正在尝试使用数据库中的用户使用 PAC4J 框架实现安全层。PAC4J 文档推荐 DbProfileService,但我不知道如何使用它。

  1. 在哪里定义它?在 ConfigFactory 中?
    final DirectBasicAuthClient directBasicAuthClient = new DirectBasicAuthClient(new DbProfileService());
  1. 验证在哪里进行?我的意思是用户,密码是否正确?也许我不应该关心,它是内部完成的。

标签: pac4j

解决方案


联系PAC4J所有者后,我找到了如何使用它:

  1. 您为数据库中的用户创建一个表
  2. 创建 DbProfileService 并将 DataSource 连接传递给它
  3. 您指定表名以及 Id、用户和密码的列。
  4. 密码是加密的,你需要说明如何(在这种情况下使用 SALT)

例子:

    DataSource dataSource = FeerBoxServerDB.getDatasource();
    DbProfileService dbProfileService = new DbProfileService(dataSource);
    dbProfileService.setUsersTable("restusers");
    dbProfileService.setIdAttribute("id");
    dbProfileService.setUsernameAttribute("username");
    dbProfileService.setPasswordAttribute("password");
    dbProfileService.setPasswordEncoder(new JBCryptPasswordEncoder(ServerConfigFactory.PWD_SALT));
    final DirectBasicAuthClient directBasicAuthClient = new DirectBasicAuthClient(dbProfileService);

推荐阅读