refactor: migrate base package run.halo.sharelink -> io.github.shirainbown.sharelink
CI / ci (push) Has been cancelled

Halo 应用市场审核意见:自有代码不得使用 run.halo 保留命名空间。
- 22 个 Java 文件包名整体迁移,官方 API(run.halo.app 等)引用保持不变
- gradle group 同步修改,版本号升至 1.1.1
- 扩展 @GVK group(sharelink.halo.run)未变,存量数据完全兼容
- 已在本机 Halo 2.25.4 完成升级回归:插件 STARTED、扩展 API 正常、/download 路由正常
This commit is contained in:
shirainbown
2026-08-03 12:24:54 +08:00
parent 2f631149eb
commit 260e9f9c14
24 changed files with 55 additions and 55 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ plugins {
id "run.halo.plugin.devtools" version "0.6.2" id "run.halo.plugin.devtools" version "0.6.2"
} }
group 'run.halo.sharelink' group 'io.github.shirainbown.sharelink'
java { java {
toolchain { toolchain {
+1 -1
View File
@@ -1 +1 @@
version=1.1.0 version=1.1.1
@@ -1,4 +1,4 @@
package run.halo.sharelink; package io.github.shirainbown.sharelink;
import static run.halo.app.extension.index.IndexAttributeFactory.simpleAttribute; import static run.halo.app.extension.index.IndexAttributeFactory.simpleAttribute;
@@ -8,9 +8,9 @@ import run.halo.app.extension.SchemeManager;
import run.halo.app.extension.index.IndexSpec; import run.halo.app.extension.index.IndexSpec;
import run.halo.app.plugin.BasePlugin; import run.halo.app.plugin.BasePlugin;
import run.halo.app.plugin.PluginContext; import run.halo.app.plugin.PluginContext;
import run.halo.sharelink.model.DownloadRecord; import io.github.shirainbown.sharelink.model.DownloadRecord;
import run.halo.sharelink.model.DownloadResource; import io.github.shirainbown.sharelink.model.DownloadResource;
import run.halo.sharelink.model.VerifiedDownloader; import io.github.shirainbown.sharelink.model.VerifiedDownloader;
@Component @Component
public class SharelinkPlugin extends BasePlugin { public class SharelinkPlugin extends BasePlugin {
@@ -1,4 +1,4 @@
package run.halo.sharelink; package io.github.shirainbown.sharelink;
import lombok.Data; import lombok.Data;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -1,4 +1,4 @@
package run.halo.sharelink.console; package io.github.shirainbown.sharelink.console;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.time.Instant; import java.time.Instant;
@@ -32,10 +32,10 @@ import run.halo.app.extension.Metadata;
import run.halo.app.extension.PageRequestImpl; import run.halo.app.extension.PageRequestImpl;
import run.halo.app.extension.ReactiveExtensionClient; import run.halo.app.extension.ReactiveExtensionClient;
import run.halo.app.extension.index.query.QueryFactory; import run.halo.app.extension.index.query.QueryFactory;
import run.halo.sharelink.model.DownloadRecord; import io.github.shirainbown.sharelink.model.DownloadRecord;
import run.halo.sharelink.model.DownloadResource; import io.github.shirainbown.sharelink.model.DownloadResource;
import run.halo.sharelink.protect.UploadProtectFilter; import io.github.shirainbown.sharelink.protect.UploadProtectFilter;
import run.halo.sharelink.reference.PostReferenceService; import io.github.shirainbown.sharelink.reference.PostReferenceService;
/** /**
* Console endpoints for download resource administration, mounted under * Console endpoints for download resource administration, mounted under
@@ -1,4 +1,4 @@
package run.halo.sharelink.download; package io.github.shirainbown.sharelink.download;
/** /**
* Renders the self-contained HTML pages for the public download flow (no external CSS/JS * Renders the self-contained HTML pages for the public download flow (no external CSS/JS
@@ -1,4 +1,4 @@
package run.halo.sharelink.download; package io.github.shirainbown.sharelink.download;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
@@ -7,7 +7,7 @@ import reactor.core.publisher.Mono;
import run.halo.app.extension.ListOptions; import run.halo.app.extension.ListOptions;
import run.halo.app.extension.ReactiveExtensionClient; import run.halo.app.extension.ReactiveExtensionClient;
import run.halo.app.extension.index.query.QueryFactory; import run.halo.app.extension.index.query.QueryFactory;
import run.halo.sharelink.model.DownloadResource; import io.github.shirainbown.sharelink.model.DownloadResource;
/** /**
* Shared lookup helpers for {@link DownloadResource}. * Shared lookup helpers for {@link DownloadResource}.
@@ -1,4 +1,4 @@
package run.halo.sharelink.download; package io.github.shirainbown.sharelink.download;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -18,12 +18,12 @@ import run.halo.app.extension.GroupVersion;
import run.halo.app.extension.ListOptions; import run.halo.app.extension.ListOptions;
import run.halo.app.extension.ReactiveExtensionClient; import run.halo.app.extension.ReactiveExtensionClient;
import run.halo.app.extension.index.query.QueryFactory; import run.halo.app.extension.index.query.QueryFactory;
import run.halo.sharelink.SharelinkSettingConfigGetter; import io.github.shirainbown.sharelink.SharelinkSettingConfigGetter;
import run.halo.sharelink.emailcode.EmailCodeManager; import io.github.shirainbown.sharelink.emailcode.EmailCodeManager;
import run.halo.sharelink.model.DownloadResource; import io.github.shirainbown.sharelink.model.DownloadResource;
import run.halo.sharelink.util.EmailUtils; import io.github.shirainbown.sharelink.util.EmailUtils;
import run.halo.sharelink.util.IpUtils; import io.github.shirainbown.sharelink.util.IpUtils;
import run.halo.sharelink.verify.VerifiedEmailService; import io.github.shirainbown.sharelink.verify.VerifiedEmailService;
/** /**
* Public endpoint exchanging a (possibly verified) identity for a one-time download * Public endpoint exchanging a (possibly verified) identity for a one-time download
@@ -1,4 +1,4 @@
package run.halo.sharelink.download; package io.github.shirainbown.sharelink.download;
import java.time.Duration; import java.time.Duration;
import java.time.Instant; import java.time.Instant;
@@ -1,4 +1,4 @@
package run.halo.sharelink.download; package io.github.shirainbown.sharelink.download;
import java.net.URI; import java.net.URI;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
@@ -27,10 +27,10 @@ import run.halo.app.extension.ListOptions;
import run.halo.app.extension.Metadata; import run.halo.app.extension.Metadata;
import run.halo.app.extension.ReactiveExtensionClient; import run.halo.app.extension.ReactiveExtensionClient;
import run.halo.app.extension.index.query.QueryFactory; import run.halo.app.extension.index.query.QueryFactory;
import run.halo.sharelink.SharelinkSettingConfigGetter; import io.github.shirainbown.sharelink.SharelinkSettingConfigGetter;
import run.halo.sharelink.model.DownloadRecord; import io.github.shirainbown.sharelink.model.DownloadRecord;
import run.halo.sharelink.model.DownloadResource; import io.github.shirainbown.sharelink.model.DownloadResource;
import run.halo.sharelink.util.IpUtils; import io.github.shirainbown.sharelink.util.IpUtils;
/** /**
* Public download routes, registered as {@link RouterFunction} beans which Halo collects * Public download routes, registered as {@link RouterFunction} beans which Halo collects
@@ -1,4 +1,4 @@
package run.halo.sharelink.download; package io.github.shirainbown.sharelink.download;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
@@ -29,7 +29,7 @@ import run.halo.app.core.extension.attachment.Constant;
import run.halo.app.extension.MetadataUtil; import run.halo.app.extension.MetadataUtil;
import run.halo.app.extension.ReactiveExtensionClient; import run.halo.app.extension.ReactiveExtensionClient;
import run.halo.app.infra.ExternalUrlSupplier; import run.halo.app.infra.ExternalUrlSupplier;
import run.halo.sharelink.model.DownloadResource; import io.github.shirainbown.sharelink.model.DownloadResource;
/** /**
* Streams the attachment bytes of a download resource to the visitor. * Streams the attachment bytes of a download resource to the visitor.
@@ -1,4 +1,4 @@
package run.halo.sharelink.download; package io.github.shirainbown.sharelink.download;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.MessageDigest; import java.security.MessageDigest;
@@ -1,10 +1,10 @@
package run.halo.sharelink.emailcode; package io.github.shirainbown.sharelink.emailcode;
import java.net.URI; import java.net.URI;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.web.server.ResponseStatusException; import org.springframework.web.server.ResponseStatusException;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import run.halo.sharelink.SharelinkSettingConfigGetter; import io.github.shirainbown.sharelink.SharelinkSettingConfigGetter;
public interface EmailCodeManager { public interface EmailCodeManager {
@@ -1,4 +1,4 @@
package run.halo.sharelink.emailcode; package io.github.shirainbown.sharelink.emailcode;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.SecureRandom; import java.security.SecureRandom;
@@ -13,7 +13,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import reactor.core.scheduler.Schedulers; import reactor.core.scheduler.Schedulers;
import run.halo.sharelink.SharelinkSettingConfigGetter; import io.github.shirainbown.sharelink.SharelinkSettingConfigGetter;
/** /**
* In-memory verification code store: one active code per email, one-time use, resend / * In-memory verification code store: one active code per email, one-time use, resend /
@@ -1,4 +1,4 @@
package run.halo.sharelink.emailcode; package io.github.shirainbown.sharelink.emailcode;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -1,4 +1,4 @@
package run.halo.sharelink.model; package io.github.shirainbown.sharelink.model;
import java.time.Instant; import java.time.Instant;
import lombok.Data; import lombok.Data;
@@ -1,4 +1,4 @@
package run.halo.sharelink.model; package io.github.shirainbown.sharelink.model;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -1,4 +1,4 @@
package run.halo.sharelink.model; package io.github.shirainbown.sharelink.model;
import java.time.Instant; import java.time.Instant;
import lombok.Data; import lombok.Data;
@@ -1,4 +1,4 @@
package run.halo.sharelink.protect; package io.github.shirainbown.sharelink.protect;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.time.Duration; import java.time.Duration;
@@ -24,8 +24,8 @@ import run.halo.app.core.extension.attachment.Attachment;
import run.halo.app.extension.ListOptions; import run.halo.app.extension.ListOptions;
import run.halo.app.extension.ReactiveExtensionClient; import run.halo.app.extension.ReactiveExtensionClient;
import run.halo.app.security.AdditionalWebFilter; import run.halo.app.security.AdditionalWebFilter;
import run.halo.sharelink.download.InternalRequestSecret; import io.github.shirainbown.sharelink.download.InternalRequestSecret;
import run.halo.sharelink.model.DownloadResource; import io.github.shirainbown.sharelink.model.DownloadResource;
/** /**
* Blocks direct access to {@code /upload/**} permalinks of attachments that are * Blocks direct access to {@code /upload/**} permalinks of attachments that are
@@ -1,4 +1,4 @@
package run.halo.sharelink.reference; package io.github.shirainbown.sharelink.reference;
import java.time.Duration; import java.time.Duration;
import java.util.ArrayList; import java.util.ArrayList;
@@ -18,7 +18,7 @@ import run.halo.app.core.extension.content.Post;
import run.halo.app.core.extension.content.Snapshot; import run.halo.app.core.extension.content.Snapshot;
import run.halo.app.extension.ListOptions; import run.halo.app.extension.ListOptions;
import run.halo.app.extension.ReactiveExtensionClient; import run.halo.app.extension.ReactiveExtensionClient;
import run.halo.sharelink.model.DownloadResource; import io.github.shirainbown.sharelink.model.DownloadResource;
/** /**
* Scans published posts for occurrences of {@code /download/{slug}} and produces a * Scans published posts for occurrences of {@code /download/{slug}} and produces a
@@ -1,4 +1,4 @@
package run.halo.sharelink.util; package io.github.shirainbown.sharelink.util;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.MessageDigest; import java.security.MessageDigest;
@@ -1,4 +1,4 @@
package run.halo.sharelink.util; package io.github.shirainbown.sharelink.util;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.http.server.reactive.ServerHttpRequest;
@@ -1,4 +1,4 @@
package run.halo.sharelink.verify; package io.github.shirainbown.sharelink.verify;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -11,10 +11,10 @@ import org.springframework.web.server.ServerWebInputException;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import run.halo.app.core.extension.endpoint.CustomEndpoint; import run.halo.app.core.extension.endpoint.CustomEndpoint;
import run.halo.app.extension.GroupVersion; import run.halo.app.extension.GroupVersion;
import run.halo.sharelink.SharelinkSettingConfigGetter; import io.github.shirainbown.sharelink.SharelinkSettingConfigGetter;
import run.halo.sharelink.emailcode.EmailCodeManager; import io.github.shirainbown.sharelink.emailcode.EmailCodeManager;
import run.halo.sharelink.util.EmailUtils; import io.github.shirainbown.sharelink.util.EmailUtils;
import run.halo.sharelink.util.IpUtils; import io.github.shirainbown.sharelink.util.IpUtils;
/** /**
* Public endpoints for the download email verification flow, mounted under * Public endpoints for the download email verification flow, mounted under
@@ -1,4 +1,4 @@
package run.halo.sharelink.verify; package io.github.shirainbown.sharelink.verify;
import java.time.Instant; import java.time.Instant;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -8,9 +8,9 @@ import reactor.core.publisher.Mono;
import run.halo.app.extension.GroupVersionKind; import run.halo.app.extension.GroupVersionKind;
import run.halo.app.extension.Metadata; import run.halo.app.extension.Metadata;
import run.halo.app.extension.ReactiveExtensionClient; import run.halo.app.extension.ReactiveExtensionClient;
import run.halo.sharelink.SharelinkSettingConfigGetter; import io.github.shirainbown.sharelink.SharelinkSettingConfigGetter;
import run.halo.sharelink.model.VerifiedDownloader; import io.github.shirainbown.sharelink.model.VerifiedDownloader;
import run.halo.sharelink.util.EmailUtils; import io.github.shirainbown.sharelink.util.EmailUtils;
/** /**
* Unified "is this email verified" check for the download flow. Looks up this plugin's * Unified "is this email verified" check for the download flow. Looks up this plugin's