我正在尝试用PAC4J框架实现安全层,使用DB中的用户。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);