Spring Security demo project -> https://github.com/netbuffer/spring-security-demo
93
https://github.com/netbuffer/spring-security-demo
Spring Security 核心概念与多认证模式演示工程
| 用户名 | 密码 | 具备权限/角色 | 说明 |
|---|---|---|---|
admin | admin | admin | 管理员账号,拥有 /admin 及细粒度 read 权限 |
test | test | test | 普通测试账号,拥有 /test 权限 |
密码即用户名自身,在内存中完成 DelegatingPasswordEncoder 加密与校验。
mvn spring-boot:run
默认服务端口:18000
/your-login-path,默认跳转 /info,支持 Remember-Me)POST /logout),Header 携带 token` 进行认证)admin 权限)test 权限)@PreAuthorize("hasAuthority('admin')") // 方法调用前鉴权
@PostAuthorize("returnObject.owner == principal.username") // 方法调用后对象归属校验
@PreAuthorize("hasPermission('target-id', 'read')") // 自定义 PermissionEvaluator 细粒度权限校验
@Secured("ROLE_USER") // 角色级别鉴权
@PreFilter / @PostFilter // 集合入参及返回值过滤
http/ 下提供了完整的 IntelliJ IDEA .http 测试套件(涵盖公开放行、表单登录、JSON登录、Token认证、方法鉴权、CSRF 防护、退出等),可直接批量运行。docs/ 下提供了过滤器链、认证流程、鉴权流程及类关系的 PlantUML 设计图。.github/workflows/build.yml 定义 4 个 Job:
| Job | 触发条件 | 职责 |
|---|---|---|
build | push (master/main/v*) + PR | Dragonwell JDK 21 编译与测试,上传 target/spring-security-demo.jar 为 artifact(保留 30 天) |
release | tag v* | 由 artifact 创建 GitHub Release,自动生成 release notes |
docker-ghcr | tag v* | 多架构(linux/amd64 + linux/arm64)构建并推送到 GitHub Container Registry(ghcr.io),打 :<VERSION> 与 :latest |
docker-hub | tag v* | 多架构(linux/amd64 + linux/arm64)构建并推送到 Docker Hub(javawiki/spring-security-demo),打 :<VERSION> 与 :latest |
在 GitHub 仓库 Settings → Secrets and variables → Actions 中配置:
| Secret | 必填 | 说明 |
|---|---|---|
DOCKERHUB_USERNAME | ✓ | Docker Hub 用户名(如 javawiki) |
DOCKERHUB_TOKEN | ✓ | Docker Hub Access Token,从 hub.docker.com/settings/security 生成,需 Read & Write 权限 |
GITHUB_TOKEN | - | GitHub Actions 自动注入,无需手动创建,由 workflow 的 permissions: packages: write 自动赋权 |
Content type
Image
Digest
sha256:7c191d61c…
Size
279.9 MB
Last updated
4 days ago
docker pull javawiki/spring-security-demo