SPI接入登录服务使用指南
项目架构概述
Bella OpenAPI是一个企业级AI能力网关,提供了完整的SPI机制来集成登录服务。项目采用模块化设计,SPI模块位于api/spi,提供了统一的登录服务接口。
SPI登录服务支持的认证方式
OAuth 2.0 登录
- 支持提供商: GitHub、Google (可扩展其他提供商)
- 配置路径: bella.oauth
- 实现位置: api/spi/src/main/java/com/ke/bella/openapi/login/oauth/
CAS 单点登录
- 协议版本: CAS 3.0
- 配置路径: bella.cas
- 实现位置: api/spi/src/main/java/com/ke/bella/openapi/login/cas/
客户端模式登录
- 适用场景: 独立前端应用
- 配置路径: bella.login.type=client
- 特点: 基于HTTP会话管理
API Key 认证
- 认证方式: Header中的Authorization字段
- 配置路径: bella.login.authorization-header
快速接入步骤
第一步:启用SPI登录功能
在你的Spring Boot应用中添加注解:
@SpringBootApplication
@EnableBellaLogin // 启用Bella登录SPI
public class YourApplication {
public static void main(String[] args) {
SpringApplication.run(YourApplication.class, args);
}
}
第二步:配置登录方式
OAuth登录配置示例:
bella:
login:
type: oauth # 启用OAuth登录
login-page-url: http://localhost:3000/login # 登录页面URL
session:
cookie-name: bella_openapi_sessionId
max-inactive-interval: 3600 # 会话超时时间(秒)
cookie-domain: localhost
oauth:
client-index: http://localhost:3000 # 客户端首页URL
redirect: http://localhost:8080 # OAuth回调基础URL
providers:
github: # GitHub OAuth配置
enabled: true
client-id: ${GITHUB_CLIENT_ID}
client-secret: ${GITHUB_CLIENT_SECRET}
scope: read:user user:email
auth-uri: https://github.com/login/oauth/authorize
token-uri: https://github.com/login/oauth/access_token
user-info-uri: https://api.github.com/user
google: # Google OAuth配置
enabled: true
client-id: ${GOOGLE_CLIENT_ID}
client-secret: ${GOOGLE_CLIENT_SECRET}
scope: profile email
auth-uri: https://accounts.google.com/o/oauth2/v2/auth
token-uri: https://oauth2.googleapis.com/token
user-info-uri: https://www.googleapis.com/oauth2/v3/userinfo
CAS登录配置示例:
bella:
login:
type: cas # 启用CAS登录
login-page-url: http://localhost:3000/login
session:
cookie-name: bella_openapi_sessionId
max-inactive-interval: 3600
cas:
server-url-prefix: https://your-cas-server.com/ # CAS服务器URL
server-login-url: https://your-cas-server.com/login # CAS登录URL
client-host: http://localhost:8080 # 当前应用地址
client-support: true # 支持SPA应用
client-index-url: http://localhost:3000 # 前端首页URL
use-cas-user-id: true # 使用CAS用户ID
id-attribute: ucid # 用户ID属性名
name-attribute: displayName # 用户名属性名
email-attribute: email # 邮箱属性名
客户端模式配置示例:
bella:
login:
type: client # 客户端模式
openapi-base: http://localhost:8080 # API服务地址
login-page-url: http://localhost:3000/login
session:
cookie-name: bella_openapi_sessionId
max-inactive-interval: 3600
第三步:添加依赖
在你的pom.xml中添加SPI依赖:
<dependency>
<groupId>com.ke.bella</groupId>
<artifactId>bella-openapi-spi</artifactId>
<version>${bella.version}</version>
</dependency>