OpenAuth2 的初始化、资源库、回调函数
1. OpenAuthLibrary
使用逻辑和PermLibrary一样,这里是OpenAuth的数据来源,init为从数据库初始化的数据,这个数据若开启了二级缓存,那么会保存在二级缓存中。否则会在一级缓存里
java
public interface OpenAuthLibrary extends AuthorizationCallback {
/**
* listAll 从数据库【获取】资源。用于初始化注册过的客户端信息
*
* @return 所有注册过的客户端信息 List(客户端id,客户端name,客户端密钥,重定向url)
*/
@NonNull
List<ClientDetails> init();
/**
* 从数据库【添加】资源,新增客户端信息
*
* @param clientDetails 客户端的详细信息(客户端id,客户端name,客户端密钥,重定向url)
*/
void registerClient(@NonNull ClientDetails clientDetails);
/**
* 从数据库【获取】资源,通过clientId获取客户端信息
*
* @param clientId 客户端id
* @return 客户端的详细信息(客户端id,客户端name,客户端密钥,重定向url)
*/
@Nullable
ClientDetails getClientById(@NonNull String clientId);
/**
* 从数据库【删除】资源,通过clientId删除客户端信息
*
* @param clientId 客户端id
*/
void deleteClientById(@NonNull String clientId);
/**
* 成功授权时的回调方法
*
* @param authorizedDeviceDetails 授权信息
*/
@Override
default void authorize(@NonNull AuthorizedDeviceDetails authorizedDeviceDetails) {
}
}
2. 授权成功、删除授权、授权时的回调方法
只需要实现此接口,并将其注入Spring,便能实现回调方法
java
@FunctionalInterface
public interface AuthorizationCallback {
/**
* 成功授权时的回调方法
*
* @param authorizedDeviceDetails 授权信息
*/
void authorize(@NonNull AuthorizedDeviceDetails authorizedDeviceDetails);
/**
* 删除授权时的回调方法
*
* @param id 授权信息id
*/
default void removeAuthorization(@NonNull String id) {
}
/**
* 授权时的回调方法
*
* @param authorizationCode 授权码
* @param authorizationInfo 授权信息
*/
default void createAuthorizationCodeCallback(@NonNull String authorizationCode,
@NonNull AuthorizationInfo authorizationInfo) {
}
}