pac4j - 如何从 PAC4J 框架中使用 DbProfileService
问题描述
我正在尝试使用数据库中的用户使用 PAC4J 框架实现安全层。PAC4J 文档推荐 DbProfileService,但我不知道如何使用它。
- 在哪里定义它?在 ConfigFactory 中?
final DirectBasicAuthClient directBasicAuthClient = new DirectBasicAuthClient(new DbProfileService());
- 验证在哪里进行?我的意思是用户,密码是否正确?也许我不应该关心,它是内部完成的。
解决方案
联系PAC4J所有者后,我找到了如何使用它:
- 您为数据库中的用户创建一个表
- 创建 DbProfileService 并将 DataSource 连接传递给它
- 您指定表名以及 Id、用户和密码的列。
- 密码是加密的,你需要说明如何(在这种情况下使用 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);
推荐阅读
- python - 由于“警告:分辨率无效”错误,Tesseract OCR 图像识别失败
- azure - 如何为 Azure 日志分析工作区轮换密钥
- mongodb - 当键都不同时如何编写mongodb查询
- python - 从文本文件中读取数据并将其存储在python中的数组中
- python - 如何使用滚动窗口函数计算 Pyspark Dataframe 中等于某个值的相邻值的数量?
- java - 如何在 Java 中剪切时区信息
- python - AttributeError:模块“yahoo_finance”没有属性“下载”
- python - 如何从 R 中的 URL 下载和显示图像?并重命名((整体)
- jmeter - 使用用户定义变量时,JMeter 只为一个用户运行,而不是 ThreadGroup 中定义的线程数
- php - Sweetalert2 删除确认