运行时依赖
安装命令
点击复制技能文档
Auth0 Java MVC 公共集成 使用 com.auth0:mvc-auth-commons 将 Auth0 身份验证添加到 Java Servlet 网页应用程序。提供 AuthenticationController 用于构建授权 URL 和处理回调,并支持基于会话的身份验证、组织和多个自定义域名。
代理指令:在提供 SDK 设置说明之前,通过运行以下命令获取最新的发布版本: gh api repos/auth0/auth0-java-mvc-common/releases/latest --jq '.tag_name' 在所有依赖项行中使用返回的版本,而不是任何硬编码版本。如果 API 调用失败,请使用 1.12.0。
先决条件 Java 8+(推荐 Java 17+) Servlet 容器(Tomcat、Jetty 等)具有 javax.servlet 3+ Maven 3.6+ 或 Gradle 7+ Auth0 正式 Web 应用程序配置 如果您尚未设置 Auth0,请先使用 auth0-quickstart 技能
何时不使用 用例 推荐技能 具有自动配置的 Spring Boot Web 应用程序 使用 Spring Boot + Okta 启动器进行自动配置的 Spring Boot 登录 Spring Boot REST API(无状态 JWT) 使用 auth0-springboot-api 进行 JWT 持有者令牌验证 单页应用程序 使用 auth0-react、auth0-vue 或 auth0-angular 进行客户端身份验证 移动应用程序 使用 auth0-android 或 auth0-swift 进行本机移动 机器到机器 API 调用 使用 Auth0 Management API SDK 进行服务器到服务器
快速入门工作流 代理指令:如果用户的提示已经提供 Auth0 凭据(域、客户端 ID、客户端密钥),则直接使用它们 - 跳过引导脚本和凭据问题。仅在凭据缺失时提供设置选项。
- 安装 SDK
- 创建 Auth0 应用程序
如果用户选择自动,请按照设置指南进行完整的 CLI 脚本。 自动路径会为您编写配置 - 跳过下面的步骤 3 并直接转到步骤 4。 如果用户选择手动,请按照设置指南(手动设置部分)进行。 然后继续执行步骤 3。
手动应用程序创建快速参考: # 使用 Auth0 CLI auth0 apps create \ --name "My Java Web App" \ --type regular \ --callbacks http://localhost:3000/callback \ --logout-urls http://localhost:3000 或在 Auth0 Dashboard → 应用程序 → 应用程序 → 创建应用程序 → 常规 Web 应用程序中手动创建
- 配置凭据
代理指令:Java 不会自动加载 .env 文件。 System.getenv() 仅读取操作系统级环境变量。 如果您生成 .env 文件,则还必须执行以下操作: (1)将 dotenv-java 作为依赖项添加并使用 Dotenv.load().get("AUTH0_DOMAIN") 代替 System.getenv(), (2)指示用户在启动服务器之前运行 source .env。 不要生成同时使用 .env 文件和 System.getenv() 的代码,而没有加载机制 - 值将为 null。
重要:域名不得包含 https://。 库会自动构造颁发者 URL。
- 初始化 AuthenticationController
public class Auth0Config { private static final AuthenticationController controller = createController();
private static AuthenticationController createController() { String domain = System.getenv("AUTH0_DOMAIN"); String clientId = System.getenv("AUTH0_CLIENT_ID"); String clientSecret = System.getenv("AUTH0_CLIENT_SECRET"); JwkProvider jwkProvider = new JwkProviderBuilder(domain).build(); return AuthenticationController.newBuilder(domain, clientId, clientSecret) .withJwkProvider(jwkProvider) .build(); }
public static AuthenticationController getAuthController() { return controller; }