如何在Spring授权服务器中获取Page<RegisteredClient>?
How to get Page<RegisteredClient> in Spring Authorization Server?
我想添加或更新 RegisteredClient 使用我的自定义控制器,所以首先需要显示 RegisteredClient 的列表。
所以我想让页面使用 RegisteredClientRepository.findAll(Pageable pageable)
,但是 RegisteredClientRepositor 没有 findAll 方法,只有 findById
,findByClientId
如何获取 RegisteredClient 的列表?
最后我用jdbcTemplate
查询
@Component
public class CustomRegisteredClientRepo {
@Autowired
private JdbcTemplate jdbcTemplate;
public Page<CustomClient> findAll(Pageable page) {
Order order = !page.getSort().isEmpty() ? page.getSort().toList().get(0) : Order.by("id");
SqlRowSet rs = jdbcTemplate.queryForRowSet("SELECT * FROM oauth2_registered_client ORDER BY "
+ order.getProperty() + " " + order.getDirection().name() + " LIMIT " + page.getPageSize()
+ " OFFSET " + page.getOffset());
long count =
jdbcTemplate.queryForObject("select count(*) from oauth2_registered_client", long.class);
List<CustomClient> list = new ArrayList<CustomClient>();
while (rs.next()) {
CustomClient client = new CustomClient();
client.setId(rs.getString("id"));
client.setClientId(rs.getString("client_id"));
list.add(client);
}
return new PageImpl<CustomClient>(list, page, count);
}
}
我想添加或更新 RegisteredClient 使用我的自定义控制器,所以首先需要显示 RegisteredClient 的列表。
所以我想让页面使用 RegisteredClientRepository.findAll(Pageable pageable)
,但是 RegisteredClientRepositor 没有 findAll 方法,只有 findById
,findByClientId
如何获取 RegisteredClient 的列表?
最后我用jdbcTemplate
查询
@Component
public class CustomRegisteredClientRepo {
@Autowired
private JdbcTemplate jdbcTemplate;
public Page<CustomClient> findAll(Pageable page) {
Order order = !page.getSort().isEmpty() ? page.getSort().toList().get(0) : Order.by("id");
SqlRowSet rs = jdbcTemplate.queryForRowSet("SELECT * FROM oauth2_registered_client ORDER BY "
+ order.getProperty() + " " + order.getDirection().name() + " LIMIT " + page.getPageSize()
+ " OFFSET " + page.getOffset());
long count =
jdbcTemplate.queryForObject("select count(*) from oauth2_registered_client", long.class);
List<CustomClient> list = new ArrayList<CustomClient>();
while (rs.next()) {
CustomClient client = new CustomClient();
client.setId(rs.getString("id"));
client.setClientId(rs.getString("client_id"));
list.add(client);
}
return new PageImpl<CustomClient>(list, page, count);
}
}