SAML Java Toolkit 技术文档
2024-12-23 14:45:44作者:龚格成
1. 安装指南
1.1 通过 GitHub 安装
你可以从 GitHub 下载最新版本的 SAML Java Toolkit:
- 最新发布版本:GitHub Releases
- 主仓库:GitHub Master
1.2 通过 Maven 安装
SAML Java Toolkit 托管在 Sonatype OSSRH,并同步到中央仓库。你可以通过 Maven 依赖来安装:
<dependency>
<groupId>com.onelogin</groupId>
<artifactId>java-saml</artifactId>
<version>2.9.0</version>
</dependency>
1.3 依赖项
SAML Java Toolkit 依赖以下库:
- 核心依赖:
- org.apache.santuario:xmlsec
- joda-time:joda-time
- org.apache.commons:commons-lang3
- commons-codec:commons-codec
- 测试依赖:
- org.hamcrest:hamcrest-core 和 org.hamcrest:hamcrest-library
- junit:junit
- org.mockito:mockito-core
- 日志依赖:
- org.slf4j:slf4j-api
- ch.qos.logback:logback-classic
- CI 依赖:
- org.jacoco:jacoco-maven-plugin
此外,还需要安装 Java Cryptography Extension (JCE)。如果你使用的是 JDK 8,请下载并安装 jce-8。
2. 项目的使用说明
2.1 项目概述
SAML Java Toolkit 允许你将 Java 应用程序转换为支持 SAML 的 SP(服务提供者),并连接到 IdP(身份提供者)。它支持以下功能:
- SSO 和 SLO(SP 发起和 IdP 发起)
- 断言和名称 ID 加密
- 断言签名
- 消息签名:AuthNRequest、LogoutRequest、LogoutResponse
- 启用断言消费者服务端点
- 启用单点注销服务端点
- 发布 SP 元数据(可以签名)
2.2 主要特性
- saml2int:实现 SAML 2.0 Web 浏览器 SSO 配置文件
- 无会话:避免 SP 和最终应用程序之间的常见冲突
- 易于使用:提供高级别和低级别的编程接口
- 经过测试:经过彻底测试
3. 项目 API 使用文档
3.1 核心 API
核心 API 包含处理 AuthNRequest、SAMLResponse、LogoutRequest、LogoutResponse 和 Metadata 的类和方法。
3.2 工具包 API
工具包 API 提供了更高级别的接口,简化了 SAML 操作。
3.3 示例 API
示例 API 展示了如何在实际应用中使用 SAML Java Toolkit。
4. 项目安装方式
4.1 通过 GitHub 安装
从 GitHub 下载最新版本的 SAML Java Toolkit,并将其导入到你的项目中。
4.2 通过 Maven 安装
在 Maven 项目的 pom.xml
文件中添加以下依赖:
<dependency>
<groupId>com.onelogin</groupId>
<artifactId>java-saml</artifactId>
<version>2.9.0</version>
</dependency>
4.3 依赖项安装
确保你已经安装了所有必要的依赖项,特别是 Java Cryptography Extension (JCE)。
5. 使用示例
5.1 导入项目
- 打开 Eclipse 并设置工作区。
- 导入
core
和toolkit
项目:- 选择
File > Import > Maven : Existing Maven Projects
,然后选择core
和toolkit
目录。
- 选择
- 导入
java-saml-tookit-jspsample
项目:- 选择
File > Import > Maven : Existing Maven Projects
,然后选择samples/java-saml-tookit-jspsample
目录。
- 选择
5.2 部署示例项目
- 在包资源管理器中选择
jsp-sample
项目。 - 右键点击并选择
Run As > Run Server
。 - 选择一个 Tomcat 服务器来部署项目。
6. 安全警告
在生产环境中,必须将 onelogin.saml2.strict
设置参数设置为 true
,否则环境将不安全,容易受到攻击。建议在设置中注册 IdP 证书,而不是使用指纹方法。
热门项目推荐
相关项目推荐
- PDFMathTranslatePDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/DockerPython02
- topiam-eiam开源IDaas/IAM平台,用于管理企业内员工账号、权限、身份认证、应用访问,帮助整合部署在本地或云端的内部办公系统、业务系统及三方 SaaS 系统的所有身份,实现一个账号打通所有应用的服务。Java00
- 每日精选项目🔥🔥 12.23日推荐:跨平台终端工具,终端中实现编辑、运行、预览,无需来回切换🔥🔥 每日推荐行业内最新、增长最快的项目,快速了解行业最新热门项目动态~~017
- Cangjie-Examples本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。Cangjie039
- 毕方Talon工具本工具是一个端到端的工具,用于项目的生成IR并自动进行缺陷检测。Python039
- advanced-javaAdvanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。JavaScript0102
- taro开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/TypeScript010
- Yi-CoderYi Coder 编程模型,小而强大的编程助手HTML012
- CommunityCangjie-TPC(Third Party Components)仓颉编程语言三方库社区资源汇总05
- qwerty-learner为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workersTSX026
热门内容推荐
最新内容推荐
项目优选
收起
openHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
46
34
PDFMathTranslate
PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/Docker
Python
25
2
Cangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
171
39
RuoYi-Vue
🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本
Java
164
33
HarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
248
63
RuoYi-Cloud-Vue3
🎉 基于Spring Boot、Spring Cloud & Alibaba、Vue3 & Vite、Element Plus的分布式前后端分离微服务架构权限管理系统
Vue
21
17
CangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
892
0
GitCode光引计划有奖征文大赛
GitCode光引计划有奖征文大赛
16
1
RuoYi-Cloud
🎉 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统,同时提供了 Vue3 的版本
Java
25
10
advanced-java
Advanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。
JavaScript
389
102