Spring Security 教程(23)、应用程序示例

Tutorial 示例:最基础的集成

sample-applications 配图
sample-applications 配图
sample-applications 配图

Tutorial 示例展示了 Spring Security 与 Spring MVC 的最基本集成。

核心特点:

  • 完全使用 XML 命名空间配置
  • 基于表单的认证
  • Remember-Me 功能
  • 简单的角色授权

编译和运行:

1
2
3
mvn package
# 将 target/tutorial.war 部署到 Tomcat
# 访问 http://localhost:8080/tutorial

默认凭据:

  • 用户:user / 密码:在构建输出中查找
  • 用户:admin / 密码:在构建输出中查找

学习要点:这个示例展示了如何用最少的配置让一个 Spring MVC 应用具备安全保护。

Contacts 示例:ACL 访问控制

Contacts 示例展示了 Spring Security 的 ACL(访问控制列表)功能。

核心特点:

  • 基于域对象的安全控制(每个联系人有独立的 ACL)
  • 使用 @PostAuthorize 注解
  • 管理界面支持添加/删除联系人

运行:

1
2
3
mvn package
# 将 target/contacts.war 部署到 Tomcat
# 访问 http://localhost:8080/contacts

测试步骤:

  1. 使用 rod / password 登录(SUPERVISOR 角色)
  2. 点击 “Manage” 管理联系人
  3. 观察只有当前用户的联系人可见

学习要点:这个示例展示了如何在业务对象级别实施细粒度权限控制。

LDAP 示例:企业级认证

LDAP 示例展示了如何集成企业 LDAP 目录服务。

核心特点:

  • 使用 embedded-ldap 进行本地测试
  • 真实的 LDAP 绑定和搜索
  • 支持组权限映射

运行:

1
2
3
mvn package
# 将 target/ldap.war 部署到 Tomcat
# 访问 http://localhost:8080/ldap

测试凭据:

  • jimi / jimispassword
  • bob / bobspassword

学习要点:这个示例展示了如何将 Spring Security 集成到企业现有的 LDAP 基础设施中。

示例的局限性

这些示例主要是教学目的,不适合直接用于生产:

  • 使用内存用户存储
  • 硬编码密码
  • 缺少生产级安全配置(如密码强度检查、登录失败锁定)

生产应用应参考官方文档和最佳实践指南。