Package com.bytedesk.core.ip_black
Class IpBlackRestService
java.lang.Object
com.bytedesk.core.base.BaseRestService<T,TRequest,TResponse>
com.bytedesk.core.base.BaseRestServiceWithExport<IpBlackEntity,IpBlackRequest,IpBlackResponse,IpBlackExcel>
com.bytedesk.core.ip_black.IpBlackRestService
@Service
public class IpBlackRestService
extends BaseRestServiceWithExport<IpBlackEntity,IpBlackRequest,IpBlackResponse,IpBlackExcel>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AuthServiceprivate static final intprivate final IpBlackRepositoryprivate final IpCacheServiceprivate final IpServiceprivate final IpWhiteRepositoryprivate final org.modelmapper.ModelMapperprivate final UidUtils -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddToBlack(String ip, String ipLocation, BlackEntity blackEntity) voidconvertToExcel(IpBlackEntity entity) 转换为Excel对象 子类必须实现此方法convertToResponse(IpBlackEntity entity) create(IpBlackRequest request) protected org.springframework.data.jpa.domain.Specification<IpBlackEntity>createSpecification(IpBlackRequest request) 创建Specification对象,子类必须实现 用于queryByOrg的通用实现voiddelete(IpBlackRequest request) voiddeleteByIp(String ip) voiddeleteByUid(String uid) protected IpBlackEntitydoSave(IpBlackEntity entity) 子类实现具体的保存逻辑protected org.springframework.data.domain.Page<IpBlackEntity>executePageQuery(org.springframework.data.jpa.domain.Specification<IpBlackEntity> specification, org.springframework.data.domain.Pageable pageable) 执行分页查询,子类必须实现 用于queryByOrg的通用实现findByEndTimeBefore(ZonedDateTime dateTime) handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, IpBlackEntity entity) boolean查找匹配的IP白名单条目(支持CIDR格式)org.springframework.data.domain.Page<IpBlackResponse>queryByOrg(IpBlackRequest request) 通用的queryByOrg实现 子类如果有特殊逻辑可以重写此方法org.springframework.data.domain.Page<IpBlackEntity>queryByOrgEntity(IpBlackRequest request) 查询实体对象(用于Excel导出) 子类必须实现此方法queryByUid(IpBlackRequest request) 通用的queryByUid实现org.springframework.data.domain.Page<IpBlackResponse>queryByUser(IpBlackRequest request) 通用的queryByUser实现 子类如果有特殊逻辑可以重写此方法update(IpBlackRequest request) Methods inherited from class com.bytedesk.core.base.BaseRestService
deleteByOrgUid, findByOrgUid, getUidFromRequest, recover, save, setUserUidToRequest
-
Field Details
-
ipBlackRepository
-
modelMapper
private final org.modelmapper.ModelMapper modelMapper -
uidUtils
-
ipService
-
ipWhiteRepository
-
BLOCK_HOURS
private static final int BLOCK_HOURS- See Also:
-
authService
-
ipCacheService
-
-
Constructor Details
-
IpBlackRestService
public IpBlackRestService()
-
-
Method Details
-
queryByOrgEntity
Description copied from class:BaseRestServiceWithExport查询实体对象(用于Excel导出) 子类必须实现此方法- Overrides:
queryByOrgEntityin classBaseRestServiceWithExport<IpBlackEntity,IpBlackRequest, IpBlackResponse, IpBlackExcel>
-
queryByOrg
Description copied from class:BaseRestService通用的queryByOrg实现 子类如果有特殊逻辑可以重写此方法- Overrides:
queryByOrgin classBaseRestService<IpBlackEntity,IpBlackRequest, IpBlackResponse>
-
queryByUser
Description copied from class:BaseRestService通用的queryByUser实现 子类如果有特殊逻辑可以重写此方法- Overrides:
queryByUserin classBaseRestService<IpBlackEntity,IpBlackRequest, IpBlackResponse>
-
queryByUid
Description copied from class:BaseRestService通用的queryByUid实现- Overrides:
queryByUidin classBaseRestService<IpBlackEntity,IpBlackRequest, IpBlackResponse>
-
findByUid
@Cacheable(value="ipBlack", key="#uid", unless="#result == null") public Optional<IpBlackEntity> findByUid(String uid) - Specified by:
findByUidin classBaseRestService<IpBlackEntity,IpBlackRequest, IpBlackResponse>
-
findByIp
@Cacheable(value="ipBlack", key="#ip", unless="#result == null") public Optional<IpBlackEntity> findByIp(String ip) -
findByEndTimeBefore
-
addToBlackSystem
-
addToBlack
-
deleteByIp
-
isIpInBlackList
-
isIpInBlackListEntry
查找匹配的IP白名单条目(支持CIDR格式)- Parameters:
ip- 要检查的IP地址- Returns:
- 匹配的白名单条目,如果没有匹配则返回空
-
create
- Specified by:
createin classBaseRestService<IpBlackEntity,IpBlackRequest, IpBlackResponse>
-
update
- Specified by:
updatein classBaseRestService<IpBlackEntity,IpBlackRequest, IpBlackResponse>
-
doSave
Description copied from class:BaseRestService子类实现具体的保存逻辑- Specified by:
doSavein classBaseRestService<IpBlackEntity,IpBlackRequest, IpBlackResponse>
-
deleteByUid
- Specified by:
deleteByUidin classBaseRestService<IpBlackEntity,IpBlackRequest, IpBlackResponse>
-
delete
- Specified by:
deletein classBaseRestService<IpBlackEntity,IpBlackRequest, IpBlackResponse>
-
handleOptimisticLockingFailureException
public IpBlackEntity handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, IpBlackEntity entity) - Specified by:
handleOptimisticLockingFailureExceptionin classBaseRestService<IpBlackEntity,IpBlackRequest, IpBlackResponse>
-
convertToResponse
- Specified by:
convertToResponsein classBaseRestService<IpBlackEntity,IpBlackRequest, IpBlackResponse>
-
convertToExcel
Description copied from class:BaseRestServiceWithExport转换为Excel对象 子类必须实现此方法- Specified by:
convertToExcelin classBaseRestServiceWithExport<IpBlackEntity,IpBlackRequest, IpBlackResponse, IpBlackExcel>
-
createSpecification
protected org.springframework.data.jpa.domain.Specification<IpBlackEntity> createSpecification(IpBlackRequest request) Description copied from class:BaseRestService创建Specification对象,子类必须实现 用于queryByOrg的通用实现- Specified by:
createSpecificationin classBaseRestService<IpBlackEntity,IpBlackRequest, IpBlackResponse>
-
executePageQuery
protected org.springframework.data.domain.Page<IpBlackEntity> executePageQuery(org.springframework.data.jpa.domain.Specification<IpBlackEntity> specification, org.springframework.data.domain.Pageable pageable) Description copied from class:BaseRestService执行分页查询,子类必须实现 用于queryByOrg的通用实现- Specified by:
executePageQueryin classBaseRestService<IpBlackEntity,IpBlackRequest, IpBlackResponse>
-