开发指南

开发工具及相关软件

软件版本备注
JDK 1.8 + JAVA运行及开发工具包
Node.js v 16.15.0 LTS + Node.js开发工具包
eclipse-jee 2022-03 + 推荐JAVA开发工具
Visual Studio Code Version 1.60 + 推荐前端开发工具
MySQL 8.0.21 + 数据库服务器
Gradle 7.2+ 代码构建
Tomcat/tomcat-embed 9 + 应用服务器(内置)
Kafka 2.5.0 + 用户生命周期管理同步消息中间件(可选)
RocketMQ 4.9.0 + 用户生命周期管理同步消息中间件(可选)
Redis 6 + 高速缓存内存数据库(可选)
OpenLDAP 2.2 + 企业目录服务器(可选)

程序目录

MaxKey一级目录二级目录三级目录说明
README.md 关于MaxKey项目
LICENSE Apache License v2许可证
NOTICE MaxKey版权声明
ReleaseNotes.txt GA版本发布记录描述
config 构建方式配置Jar,Docker,Standard
maxkey-authentications 登录认证
maxkey-authentication-captcha 登录认证-验证码
maxkey-authentication-core 登录认证-核心功能
maxkey-authentication-otp 登录认证-令牌和一次性口令
maxkey-authentication-provider 登录认证-认证服务
maxkey-authentication-sms 登录认证-短信服务
maxkey-authentication-social 登录认证-社交账号
maxkey-common 通用基础包和工具类
maxkey-core 基础包
maxkey-synchronizers 身份同步器
maxkey-synchronizer 同步器接口
maxkey-synchronizer-activedirectory 微软Active Directory同步器
maxkey-synchronizer-feishu 飞书同步器
maxkey-synchronizer-ldap 标准LDAP同步器
maxkey-synchronizer-dingtalk 钉钉同步器
maxkey-synchronizer-workweixin 企业微信同步器
maxkey-lib 使用jar包
maxkey-persistence 数据库持久化和实时数据同步
maxkey-protocols 认证协议实现
maxkey-protocol-authorize 认证协议及单点注销实现
maxkey-protocol-cas CAS认证协议实现
maxkey-protocol-extendapi 扩展API实现
maxkey-protocol-formbased Formbased实现,桌面认证实现开发浏览器插件实现
maxkey-protocol-jwt JWT实现
maxkey-protocol-oauth-2.0 OAuth 2.x,OpenID Connect实现
maxkey-protocol-saml-2.0 SAML 2.0实现
maxkey-protocol-tokenbased tokenbased实现
maxkey-web-apis web-api接口
maxkey-web-api-rest REST身份管理接口
maxkey-web-api-scim SCIM2.0身份管理接口
maxkey-web-frontend web前端
maxkey-web-app 认证服务前端
maxkey-web-mgt-app 管理服务前端
maxkey-webs web服务
maxkey-web-maxkey 认证系统
maxkey-web-mgt 管理系统
maxkey-gataway 基于Spring Cloud套件的网关服务
shellscript Window和LINUX启动脚本
sql 数据库MYSQL脚本,GA版本对应SQL
checkstyle 编码规范配置
build.gradle 默认工程构建及版本控制
build_cnf.gradle 工程构建配置脚本
gradle.properties 版本参数配置
settings.gradle 项目引入
gradle gradle的配置
release.bat 标准和Jar构建版本
release_docker.bat docker构建版本
setEnvVars.bat JDK及Gradle路径配置,开发人员配置
release_cnf_docker.bat 构建Docker配置
release_cnf_jar.bat 构建Jar配置
release_cnf_standard.bat 构建Standard配置

开发环境应用启动

1)MaxKey统一认证系统

maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyApplication.java

2)MaxKey身份安全管理系统

maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtApplication.java

3)MaxKey统一认证前端

maxkey-web-frontend/maxkey-web-app

yarn start

4)MaxKey身份安全管理前端

maxkey-web-frontend/maxkey-web-mgt-app

yarn start

标准构建Release

1.配置环境变量

setEnvVars.bat

set JAVA_HOME=D:\JavaIDE\jdk1.8.0_91

set GRADLE_HOME=D:\IDE\gradle-7.2

2.启动构建

gradlew build -x test或者release.bat

3.构建结果

构建包路径

MaxKey/build/maxkey-jars

依赖包路径

MaxKey/build/MaxKey-v(version)GA

Docker构建release

1.Docker 构建配置

release_cnf_docker.bat

2.启动构建

gradlew build jib -x test或者release_docker.bat

3.构建的结果

maxkey-web-manage/

maxkey-web-maxkey/

SpringBoot构建release

1.SpringBoot Jar 构建配置

release_cnf_jar.bat

2.启动构建

gradlew build -x test或者release.bat

3.构建的结果

maxkey-webs/maxkey-web-manage/

maxkey-webs/maxkey-web-maxkey/

前端构建Build

1)MaxKey统一认证前端

maxkey-web-frontend/maxkey-web-app


ng build --base-href /maxkey/

2)MaxKey身份安全管理前端

maxkey-web-frontend/maxkey-web-mgt-app


ng build --base-href /maxkey-mgt/

问题及解决

问题1

“A cycle was detected in the build path of project: XXX”

解决方法:

Eclipse Menu -> Window -> Preferences… -> Java -> Compiler -> Building -> Building path problems -> Circular dependencies -> 将Error改成Warning

问题2

Access restriction

解决方案:

Eclipse Menu -> Window -> Preferences… -> Java -> Compiler -> Errors/Warnings界面的Deprecated and restricted API下。把Forbidden reference (access rules): 的规则由默认的Error改为Warning即可。

问题3

yarn start

CategoryInfo : SecurityError: ,PSSecurityException
FullyQualifiedErrorId : UnauthorizedAccess

解决方案:

Set-ExecutionPolicy RemoteSigned -Scope Process

v3.3开发指南