3 Star 10 Fork 0

徐晓伟 / spring-boot-starter

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
Loading...
README
Apache-2.0

spring-boot-starter

Spring Boot 开发组件(git 父模块)

License-Anti Link-996 QQ群

  1. 支持 OAuth 2.1 JWT 授权的支付宝小程序开发组件
  2. 支持 OAuth 2.1 JWT 授权的支付宝开放平台开发组件
  3. 支持 OAuth 2.1 JWT 授权的钉钉dingtalk开发组件
  4. 支持 OAuth 2.1 JWT 授权的飞书平台网页应用开发组件
  5. 支持 OAuth 2.1 JWT 授权的码云gitee开发组件
  6. 支持 OAuth 2.1 JWT 授权的github开发组件
  7. 支持 OAuth 2.1 JWT 授权的gitlab开发组件
  8. 支持 OAuth 2.1 JWT 授权的QQ开放平台开发组件
  9. 支持 OAuth 2.1 JWT 授权的QQ小程序平台开发组件
  10. 支持 OAuth 2.1 JWT 授权的微信小程序开发组件
  11. 支持 OAuth 2.1 JWT 授权的微信公众平台开发组件
  12. 支持 OAuth 2.1 JWT 授权的微信开放平台开发组件
  13. 支持 OAuth 2.1 JWT 授权的企业微信平台开发组件
  14. 支持 OAuth 2.1 JWT 授权的微博weibo平台开发组件
  15. 将以上 OAuth 2.1 组件打包成一个 jar 包
  16. 一个基于 Spring Boot Redis 的幂等组件
  17. Redis 序列化/反序列化 组件
  18. Spring Authorization Server OAuth 2.1 基于 Redis 的实现开发组件

OAuth 2.1 组件 使用文档

分支

  • main
    • 支持 JDK 8、11
  • next
    • 支持 JDK 17

子模块 submodule

为何使用Git子模块?

  1. 2021年2月26日 发布第一个 spring-boot-starter-idempotent 版本,使用独立的Git仓库
  2. 2022年7月14日 发布第一个 spring-boot-starter-wechat-miniprogram 版本,使用独立的Git仓库
  3. 后来创建了几个其他与 spring-boot-starter-wechat-miniprogram 相同的项目类型,用于拓展 OAuth2.1 的授权,并且也使用了独立仓库。
  4. 为了统一管理、将所学应用于实践,所以创建了这个Git模块的父项目。

为何不将拓展 OAuth2.1 的授权登录合并成一个项目,提取公共部分减少冗余代码?

  1. 拓展 OAuth2.1 的授权的项目,起初只是为了拓展 OAuth2.1 的登录而拓展,没想到会做这么多种
  2. 考虑到后期可能会将除了登录意外的其他接口一并做了,放在一个项目中过于臃肿
  3. 虽然各厂商(微信、QQ、微博、码云、GitLab等)大都使用的都是 OAuth 2.0 的协议,但差别较大,比如:
    1. 返回数据的Content-Type应该为application/json,而微信使用了text/html
    2. 网站类型与小程序类型授权方式与流程天然不同,无法轻易整合
    3. QQ扫码登录返回数据格式虽然可以设置为JSON,但是当参数有问题时,返回数据就不是JSON
    4. 微信返回access_token时携带用户唯一标识openidunionid(绑定了开放平台后返回unionid );QQ使用三个接口完了获取access_tokenopenidunionid;码云返回access_token 时无用户唯一标识,需要使用access_token来获取用户唯一标识
    5. 微信等应用的客户唯一标识使用的是appid,码云等应用使用的是client_id
    6. 有些厂商获取access_token时需要redirect_uri,有些厂商不需要
  4. 考虑到使用者可能会使用 GitLab 或自建 GitLab,针对于 GitLab 授权,需要自定义域名
  5. 每种授权使用独立的jar包,使用者上手方便,学习成本低,容易排查问题(宁愿开发者自己麻烦,不想提高使用者的成本)
  6. 拓展 OAuth2.1 的授权的项目维护虽然复杂了,但是像这种第三方授权流程,一旦做完了,万年不变(除了更新一下 OAuth 2.1 的依赖而已)
  7. 考虑新增组件 spring-boot-starter-oauth2,将 OAuth 2.1 组件打包成一个 jar 包,方便引用
git submodule add -b main ../spring-boot-starter-alipay-miniprogram.git spring-boot-starter-alipay-miniprogram
git submodule add -b main ../spring-boot-starter-alipay-oplatform.git spring-boot-starter-alipay-oplatform
git submodule add -b main ../spring-boot-starter-dingtalk.git spring-boot-starter-dingtalk
git submodule add -b main ../spring-boot-starter-feishu-webpage.git spring-boot-starter-feishu-webpage
git submodule add -b main ../spring-boot-starter-gitee.git spring-boot-starter-gitee
git submodule add -b main ../spring-boot-starter-github.git spring-boot-starter-github
git submodule add -b main ../spring-boot-starter-gitlab.git spring-boot-starter-gitlab
git submodule add -b main ../spring-boot-starter-qq-connect.git spring-boot-starter-qq-connect
git submodule add -b main ../spring-boot-starter-qq-miniprogram.git spring-boot-starter-qq-miniprogram
git submodule add -b main ../spring-boot-starter-wechat-miniprogram.git spring-boot-starter-wechat-miniprogram
git submodule add -b main ../spring-boot-starter-wechat-offiaccount.git spring-boot-starter-wechat-offiaccount
git submodule add -b main ../spring-boot-starter-wechat-oplatform.git spring-boot-starter-wechat-oplatform
git submodule add -b main ../spring-boot-starter-wechat-work.git spring-boot-starter-wechat-work
git submodule add -b main ../spring-boot-starter-weibo.git spring-boot-starter-weibo
git submodule add -b main ../spring-boot-starter-idempotent.git spring-boot-starter-idempotent
git submodule add -b main ../spring-boot-starter-redis.git spring-boot-starter-redis
git submodule add -b main ../spring-security-oauth2-authorization-server-redis.git spring-security-oauth2-authorization-server-redis

克隆 clone

git clone https://gitee.com/xuxiaowei-com-cn/spring-boot-starter.git --recursive
git clone https://gitee.com/xuxiaowei-com-cn/spring-boot-starter.git
cd spring-boot-starter
git submodule
git submodule init
git submodule update

更新 update

git submodule update
git submodule update --remote

批量切换分支

git submodule foreach git checkout main
git submodule foreach git checkout next

将 origin 远程 URL 修改为 github 远程 URL

git remote set-url origin $(git remote get-url github)

将所有子模块的 origin 远程 URL 修改为 github 远程 URL

# Windows 需要使用 git bash

git submodule foreach 'git remote set-url origin $(git remote get-url github)'

批量添加远端仓库地址

点击展开 git remote add gitee https://gitee.com/xuxiaowei-com-cn/spring-boot-starter.git git remote add gitlab https://gitlab.com/xuxiaowei-com-cn/spring-boot-starter.git git remote add framagit https://framagit.org/xuxiaowei-com-cn/spring-boot-starter.git git remote add github https://github.com/xuxiaowei-com-cn/spring-boot-starter.git git remote add gitcode https://gitcode.net/xuxiaowei-com-cn/spring-boot-starter.git git remote add gitlink https://gitlink.org.cn/xuxiaowei-com-cn/spring-boot-starter.git

Windows 需要使用 git bash

git submodule foreach 'git remote add gitee https://gitee.com/xuxiaowei-com-cn/$(basename $path).git' git submodule foreach 'git remote add gitlab https://gitlab.com/xuxiaowei-com-cn/$(basename $path).git' git submodule foreach 'git remote add framagit https://framagit.org/xuxiaowei-com-cn/$(basename $path).git' git submodule foreach 'git remote add github https://github.com/xuxiaowei-com-cn/$(basename $path).git' git submodule foreach 'git remote add gitcode https://gitcode.net/xuxiaowei-com-cn/$(basename $path).git' git submodule foreach 'git remote add gitlink https://gitlink.org.cn/xuxiaowei-com-cn/$(basename $path).git'

批量推送到远端仓库

点击展开 git fetch "origin" next:next git fetch "origin" main:main cd spring-boot-starter-alipay-miniprogram git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-alipay-oplatform git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-dingtalk git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-feishu-webpage git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-gitee git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-github git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-gitlab git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-qq-connect git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-qq-miniprogram git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-wechat-miniprogram git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-wechat-offiaccount git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-wechat-oplatform git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-wechat-work git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-weibo git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-idempotent git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-boot-starter-redis git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "origin" git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. cd spring-security-oauth2-authorization-server-redis git fetch "origin" next:next git fetch "origin" main:main git.exe push --all --progress "origin" git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink" cd .. git.exe push --all --progress "origin" git.exe push --all --progress "gitee" git.exe push --all --progress "gitlab" git.exe push --all --progress "framagit" git.exe push --all --progress "github" git.exe push --all --progress "gitcode" git.exe push --all --progress "gitlink"
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

Spring Boot 开发组件(git 父模块) 展开 收起
Java 等 3 种语言
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/xuxiaowei-com-cn/spring-boot-starter.git
git@gitee.com:xuxiaowei-com-cn/spring-boot-starter.git
xuxiaowei-com-cn
spring-boot-starter
spring-boot-starter
main

搜索帮助