Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
有来技术
youlai-mall
比较版本
ddcc72b18880409492e159b9910a75d908d24823...a1c68b15dcf4c9936704ef066207eae653e9f352
Y
youlai-mall
项目概览
有来技术
/
youlai-mall
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
youlai-mall
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
源分支
a1c68b15dcf4c9936704ef066207eae653e9f352
选择Git版本
...
目标分支
ddcc72b18880409492e159b9910a75d908d24823
选择Git版本
比较
Commits (5)
https://gitcode.net/u013737132/youlai-mall/-/commit/aa4ca98a04cee4f4e2d2ef42750c3dd01902b41f
chore(oauth2_server.sql): 更细 oauth2 client 的 grant_type
2024-03-23T15:22:59+08:00
hxr
1490493387@qq.com
https://gitcode.net/u013737132/youlai-mall/-/commit/b784dca0212fac6e5adf988ce175969b47c2fc0d
chore(pom.xml): 更新项目版本号至 `3.2.1`
2024-03-23T15:24:08+08:00
hxr
1490493387@qq.com
https://gitcode.net/u013737132/youlai-mall/-/commit/888ab6e61e815b92a740f5dbf0c46e9f19104779
chore(bootstrap-prod.yml): 更新 prod 环境 nacos 的命名空间
2024-03-23T16:17:48+08:00
hxr
1490493387@qq.com
https://gitcode.net/u013737132/youlai-mall/-/commit/09359627a0f1f9aa2f6d95070c021a36dd612efb
build(Dockerfile): 更新构建镜像jdk8 → jdk17
2024-03-23T16:18:47+08:00
hxr
1490493387@qq.com
https://gitcode.net/u013737132/youlai-mall/-/commit/a1c68b15dcf4c9936704ef066207eae653e9f352
refactor: 优化oauth2授权扩展
2024-03-23T16:21:23+08:00
hxr
1490493387@qq.com
显示空白变更内容
内联
并排
Showing
52 changed file
with
235 addition
and
176 deletion
+235
-176
docs/sql/mysql5/oauth2_server.sql
docs/sql/mysql5/oauth2_server.sql
+1
-1
docs/sql/mysql8/oauth2_server.sql
docs/sql/mysql8/oauth2_server.sql
+1
-1
mall-oms/oms-api/pom.xml
mall-oms/oms-api/pom.xml
+1
-1
mall-oms/oms-boot/Dockerfile
mall-oms/oms-boot/Dockerfile
+29
-5
mall-oms/oms-boot/pom.xml
mall-oms/oms-boot/pom.xml
+1
-1
mall-oms/oms-boot/src/main/resources/bootstrap-prod.yml
mall-oms/oms-boot/src/main/resources/bootstrap-prod.yml
+2
-2
mall-oms/pom.xml
mall-oms/pom.xml
+1
-1
mall-pms/pms-api/pom.xml
mall-pms/pms-api/pom.xml
+1
-1
mall-pms/pms-boot/Dockerfile
mall-pms/pms-boot/Dockerfile
+12
-6
mall-pms/pms-boot/pom.xml
mall-pms/pms-boot/pom.xml
+1
-2
mall-pms/pms-boot/src/main/resources/bootstrap-prod.yml
mall-pms/pms-boot/src/main/resources/bootstrap-prod.yml
+2
-2
mall-pms/pom.xml
mall-pms/pom.xml
+1
-1
mall-sms/pom.xml
mall-sms/pom.xml
+1
-1
mall-sms/sms-api/pom.xml
mall-sms/sms-api/pom.xml
+1
-1
mall-sms/sms-boot/Dockerfile
mall-sms/sms-boot/Dockerfile
+18
-6
mall-sms/sms-boot/pom.xml
mall-sms/sms-boot/pom.xml
+1
-2
mall-sms/sms-boot/src/main/resources/bootstrap-prod.yml
mall-sms/sms-boot/src/main/resources/bootstrap-prod.yml
+2
-2
mall-ums/pom.xml
mall-ums/pom.xml
+1
-1
mall-ums/ums-api/pom.xml
mall-ums/ums-api/pom.xml
+2
-2
mall-ums/ums-boot/Dockerfile
mall-ums/ums-boot/Dockerfile
+24
-6
mall-ums/ums-boot/pom.xml
mall-ums/ums-boot/pom.xml
+1
-2
mall-ums/ums-boot/src/main/resources/bootstrap-prod.yml
mall-ums/ums-boot/src/main/resources/bootstrap-prod.yml
+2
-2
pom.xml
pom.xml
+3
-13
youlai-auth/Dockerfile
youlai-auth/Dockerfile
+15
-4
youlai-auth/pom.xml
youlai-auth/pom.xml
+3
-4
youlai-auth/src/main/java/com/youlai/auth/config/AuthorizationServerConfig.java
...ava/com/youlai/auth/config/AuthorizationServerConfig.java
+13
-20
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/smscode/SmsCodeAuthenticationConverter.java
...th2/extension/smscode/SmsCodeAuthenticationConverter.java
+8
-8
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/smscode/SmsCodeAuthenticationProvider.java
...uth2/extension/smscode/SmsCodeAuthenticationProvider.java
+13
-13
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/smscode/SmsCodeAuthenticationToken.java
.../oauth2/extension/smscode/SmsCodeAuthenticationToken.java
+6
-6
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/smscode/SmsCodeParameterNames.java
.../auth/oauth2/extension/smscode/SmsCodeParameterNames.java
+3
-3
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/wechat/WechatAuthenticationConverter.java
...auth2/extension/wechat/WechatAuthenticationConverter.java
+4
-4
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/wechat/WechatAuthenticationProvider.java
...oauth2/extension/wechat/WechatAuthenticationProvider.java
+11
-11
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/wechat/WechatAuthenticationToken.java
...th/oauth2/extension/wechat/WechatAuthenticationToken.java
+5
-5
youlai-auth/src/main/resources/bootstrap-prod.yml
youlai-auth/src/main/resources/bootstrap-prod.yml
+3
-3
youlai-common/common-apidoc/pom.xml
youlai-common/common-apidoc/pom.xml
+4
-5
youlai-common/common-core/pom.xml
youlai-common/common-core/pom.xml
+1
-1
youlai-common/common-mybatis/pom.xml
youlai-common/common-mybatis/pom.xml
+1
-1
youlai-common/common-rabbitmq/pom.xml
youlai-common/common-rabbitmq/pom.xml
+1
-1
youlai-common/common-redis/pom.xml
youlai-common/common-redis/pom.xml
+1
-1
youlai-common/common-seata/pom.xml
youlai-common/common-seata/pom.xml
+1
-1
youlai-common/common-security/pom.xml
youlai-common/common-security/pom.xml
+1
-1
youlai-common/common-sms/pom.xml
youlai-common/common-sms/pom.xml
+1
-1
youlai-common/common-web/pom.xml
youlai-common/common-web/pom.xml
+1
-1
youlai-common/pom.xml
youlai-common/pom.xml
+1
-1
youlai-gateway/Dockerfile
youlai-gateway/Dockerfile
+11
-4
youlai-gateway/pom.xml
youlai-gateway/pom.xml
+1
-1
youlai-gateway/src/main/resources/bootstrap-prod.yml
youlai-gateway/src/main/resources/bootstrap-prod.yml
+2
-3
youlai-system/pom.xml
youlai-system/pom.xml
+1
-1
youlai-system/system-api/pom.xml
youlai-system/system-api/pom.xml
+1
-1
youlai-system/system-boot/Dockerfile
youlai-system/system-boot/Dockerfile
+10
-4
youlai-system/system-boot/pom.xml
youlai-system/system-boot/pom.xml
+1
-2
youlai-system/system-boot/src/main/resources/bootstrap-prod.yml
...-system/system-boot/src/main/resources/bootstrap-prod.yml
+2
-3
未找到文件。
docs/sql/mysql5/oauth2_server.sql
浏览文件 @
a1c68b15
...
...
@@ -82,7 +82,7 @@ CREATE TABLE oauth2_registered_client (
-- ----------------------------
-- Records of oauth2_registered_client
-- ----------------------------
INSERT
INTO
`oauth2_registered_client`
VALUES
(
'0d2eb3c4-bab5-4973-a64e-2c5c3898e249'
,
'mall-app'
,
now
(),
'{bcrypt}$2a$10$OqbaoJTZyCnnBLhtaAKumONuMuwfigqRzjicx4B2Lqy3YsgTBF9Hq'
,
NULL
,
'商城APP客户端'
,
'client_secret_basic'
,
'refresh_token,client_credentials,authorization_code,sms
,wx_mini_app
'
,
'http://127.0.0.1:8080/authorized'
,
'http://127.0.0.1:8080/logged-out'
,
'openid,profile'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.client.require-proof-key
\"
:false,
\"
settings.client.require-authorization-consent
\"
:true}'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.token.reuse-refresh-tokens
\"
:true,
\"
settings.token.id-token-signature-algorithm
\"
:[
\"
org.springframework.security.oauth2.jose.jws.SignatureAlgorithm
\"
,
\"
RS256
\"
],
\"
settings.token.access-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,86400.000000000],
\"
settings.token.access-token-format
\"
:{
\"
@class
\"
:
\"
org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat
\"
,
\"
value
\"
:
\"
self-contained
\"
},
\"
settings.token.refresh-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,3600.000000000],
\"
settings.token.authorization-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000],
\"
settings.token.device-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000]}'
);
INSERT
INTO
`oauth2_registered_client`
VALUES
(
'0d2eb3c4-bab5-4973-a64e-2c5c3898e249'
,
'mall-app'
,
now
(),
'{bcrypt}$2a$10$OqbaoJTZyCnnBLhtaAKumONuMuwfigqRzjicx4B2Lqy3YsgTBF9Hq'
,
NULL
,
'商城APP客户端'
,
'client_secret_basic'
,
'refresh_token,client_credentials,authorization_code,sms
_code,wechat
'
,
'http://127.0.0.1:8080/authorized'
,
'http://127.0.0.1:8080/logged-out'
,
'openid,profile'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.client.require-proof-key
\"
:false,
\"
settings.client.require-authorization-consent
\"
:true}'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.token.reuse-refresh-tokens
\"
:true,
\"
settings.token.id-token-signature-algorithm
\"
:[
\"
org.springframework.security.oauth2.jose.jws.SignatureAlgorithm
\"
,
\"
RS256
\"
],
\"
settings.token.access-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,86400.000000000],
\"
settings.token.access-token-format
\"
:{
\"
@class
\"
:
\"
org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat
\"
,
\"
value
\"
:
\"
self-contained
\"
},
\"
settings.token.refresh-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,3600.000000000],
\"
settings.token.authorization-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000],
\"
settings.token.device-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000]}'
);
INSERT
INTO
`oauth2_registered_client`
VALUES
(
'94aa75c2-1c00-44d5-a1ff-edb18f8ad9c4'
,
'mall-admin'
,
now
(),
'{bcrypt}$2a$10$9klpwOFEl1zeWlATOYNFYeHoWuDsb160od86/cJrJG8Ik.7fQNOaC'
,
NULL
,
'商城管理客户端'
,
'client_secret_basic'
,
'refresh_token,client_credentials,password,captcha,authorization_code'
,
'http://127.0.0.1:8080/authorized'
,
'http://127.0.0.1:8080/logged-out'
,
'openid,profile'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.client.require-proof-key
\"
:false,
\"
settings.client.require-authorization-consent
\"
:true}'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.token.reuse-refresh-tokens
\"
:true,
\"
settings.token.id-token-signature-algorithm
\"
:[
\"
org.springframework.security.oauth2.jose.jws.SignatureAlgorithm
\"
,
\"
RS256
\"
],
\"
settings.token.access-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,86400.000000000],
\"
settings.token.access-token-format
\"
:{
\"
@class
\"
:
\"
org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat
\"
,
\"
value
\"
:
\"
self-contained
\"
},
\"
settings.token.refresh-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,3600.000000000],
\"
settings.token.authorization-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000],
\"
settings.token.device-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000]}'
);
INSERT
INTO
`oauth2_registered_client`
VALUES
(
'94aa75c2-1c00-44d5-a1ff-edb18f8ad9c5'
,
'client'
,
now
(),
'{bcrypt}$2a$10$T2Z9XX60zjBS0pwXZmqe1.uEf6OJiPEUhGKZg5b0SnZPwtvlxESJ2'
,
NULL
,
'商城管理客户端'
,
'client_secret_basic'
,
'refresh_token,client_credentials,password,captcha,authorization_code'
,
'http://127.0.0.1:8080/authorized'
,
'http://127.0.0.1:8080/logged-out'
,
'openid,profile'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.client.require-proof-key
\"
:false,
\"
settings.client.require-authorization-consent
\"
:true}'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.token.reuse-refresh-tokens
\"
:true,
\"
settings.token.id-token-signature-algorithm
\"
:[
\"
org.springframework.security.oauth2.jose.jws.SignatureAlgorithm
\"
,
\"
RS256
\"
],
\"
settings.token.access-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,86400.000000000],
\"
settings.token.access-token-format
\"
:{
\"
@class
\"
:
\"
org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat
\"
,
\"
value
\"
:
\"
self-contained
\"
},
\"
settings.token.refresh-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,3600.000000000],
\"
settings.token.authorization-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000],
\"
settings.token.device-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000]}'
);
docs/sql/mysql8/oauth2_server.sql
浏览文件 @
a1c68b15
...
...
@@ -77,6 +77,6 @@ CREATE TABLE oauth2_registered_client (
-- ----------------------------
-- Records of oauth2_registered_client
-- ----------------------------
INSERT
INTO
`oauth2_registered_client`
VALUES
(
'0d2eb3c4-bab5-4973-a64e-2c5c3898e249'
,
'mall-app'
,
now
(),
'{bcrypt}$2a$10$OqbaoJTZyCnnBLhtaAKumONuMuwfigqRzjicx4B2Lqy3YsgTBF9Hq'
,
NULL
,
'商城APP客户端'
,
'client_secret_basic'
,
'refresh_token,client_credentials,authorization_code,sms
,wx_mini_app
'
,
'http://127.0.0.1:8080/authorized'
,
'http://127.0.0.1:8080/logged-out'
,
'openid,profile'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.client.require-proof-key
\"
:false,
\"
settings.client.require-authorization-consent
\"
:true}'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.token.reuse-refresh-tokens
\"
:true,
\"
settings.token.id-token-signature-algorithm
\"
:[
\"
org.springframework.security.oauth2.jose.jws.SignatureAlgorithm
\"
,
\"
RS256
\"
],
\"
settings.token.access-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,86400.000000000],
\"
settings.token.access-token-format
\"
:{
\"
@class
\"
:
\"
org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat
\"
,
\"
value
\"
:
\"
self-contained
\"
},
\"
settings.token.refresh-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,3600.000000000],
\"
settings.token.authorization-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000],
\"
settings.token.device-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000]}'
);
INSERT
INTO
`oauth2_registered_client`
VALUES
(
'0d2eb3c4-bab5-4973-a64e-2c5c3898e249'
,
'mall-app'
,
now
(),
'{bcrypt}$2a$10$OqbaoJTZyCnnBLhtaAKumONuMuwfigqRzjicx4B2Lqy3YsgTBF9Hq'
,
NULL
,
'商城APP客户端'
,
'client_secret_basic'
,
'refresh_token,client_credentials,authorization_code,sms
_code,wechat
'
,
'http://127.0.0.1:8080/authorized'
,
'http://127.0.0.1:8080/logged-out'
,
'openid,profile'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.client.require-proof-key
\"
:false,
\"
settings.client.require-authorization-consent
\"
:true}'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.token.reuse-refresh-tokens
\"
:true,
\"
settings.token.id-token-signature-algorithm
\"
:[
\"
org.springframework.security.oauth2.jose.jws.SignatureAlgorithm
\"
,
\"
RS256
\"
],
\"
settings.token.access-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,86400.000000000],
\"
settings.token.access-token-format
\"
:{
\"
@class
\"
:
\"
org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat
\"
,
\"
value
\"
:
\"
self-contained
\"
},
\"
settings.token.refresh-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,3600.000000000],
\"
settings.token.authorization-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000],
\"
settings.token.device-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000]}'
);
INSERT
INTO
`oauth2_registered_client`
VALUES
(
'94aa75c2-1c00-44d5-a1ff-edb18f8ad9c4'
,
'mall-admin'
,
now
(),
'{bcrypt}$2a$10$9klpwOFEl1zeWlATOYNFYeHoWuDsb160od86/cJrJG8Ik.7fQNOaC'
,
NULL
,
'商城管理客户端'
,
'client_secret_basic'
,
'refresh_token,client_credentials,password,captcha,authorization_code'
,
'http://127.0.0.1:8080/authorized'
,
'http://127.0.0.1:8080/logged-out'
,
'openid,profile'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.client.require-proof-key
\"
:false,
\"
settings.client.require-authorization-consent
\"
:true}'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.token.reuse-refresh-tokens
\"
:true,
\"
settings.token.id-token-signature-algorithm
\"
:[
\"
org.springframework.security.oauth2.jose.jws.SignatureAlgorithm
\"
,
\"
RS256
\"
],
\"
settings.token.access-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,86400.000000000],
\"
settings.token.access-token-format
\"
:{
\"
@class
\"
:
\"
org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat
\"
,
\"
value
\"
:
\"
self-contained
\"
},
\"
settings.token.refresh-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,3600.000000000],
\"
settings.token.authorization-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000],
\"
settings.token.device-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000]}'
);
INSERT
INTO
`oauth2_registered_client`
VALUES
(
'94aa75c2-1c00-44d5-a1ff-edb18f8ad9c5'
,
'client'
,
now
(),
'{bcrypt}$2a$10$T2Z9XX60zjBS0pwXZmqe1.uEf6OJiPEUhGKZg5b0SnZPwtvlxESJ2'
,
NULL
,
'商城管理客户端'
,
'client_secret_basic'
,
'refresh_token,client_credentials,password,captcha,authorization_code'
,
'http://127.0.0.1:8080/authorized'
,
'http://127.0.0.1:8080/logged-out'
,
'openid,profile'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.client.require-proof-key
\"
:false,
\"
settings.client.require-authorization-consent
\"
:true}'
,
'{
\"
@class
\"
:
\"
java.util.Collections$UnmodifiableMap
\"
,
\"
settings.token.reuse-refresh-tokens
\"
:true,
\"
settings.token.id-token-signature-algorithm
\"
:[
\"
org.springframework.security.oauth2.jose.jws.SignatureAlgorithm
\"
,
\"
RS256
\"
],
\"
settings.token.access-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,86400.000000000],
\"
settings.token.access-token-format
\"
:{
\"
@class
\"
:
\"
org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat
\"
,
\"
value
\"
:
\"
self-contained
\"
},
\"
settings.token.refresh-token-time-to-live
\"
:[
\"
java.time.Duration
\"
,3600.000000000],
\"
settings.token.authorization-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000],
\"
settings.token.device-code-time-to-live
\"
:[
\"
java.time.Duration
\"
,300.000000000]}'
);
mall-oms/oms-api/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
mall-oms
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
mall-oms/oms-boot/Dockerfile
浏览文件 @
a1c68b15
FROM
openjdk:8-jdk-alpine
# 基础镜像
FROM
openjdk:17-jdk-alpine
# 维护者信息
MAINTAINER
youlai <youlaitech@163.com>
RUN
echo
"https://mirrors.ustc.edu.cn/alpine/v3.7/main/"
>
/etc/apk/repositories
&&
\
apk
--no-cache
add tzdata
&&
\
cp
/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&&
\
echo
"Asia/Shanghai"
>
/etc/timezone
# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层
# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
VOLUME
/tmp
ADD
target/oms-boot.jar mall-oms.jar
ENTRYPOINT
["java","-Djava.security.egd=file:/dev/./urandom","-jar","/mall-oms.jar"]
EXPOSE
8603
RUN
/bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
\&
&
echo
'Asia/Shanghai'
>
/etc/timezone
# 复制主机文件至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下
ADD
target/oms-boot.jar app.jar
# 容器启动执行命令
CMD
java \
-Xms128m \
-Xmx128m \
-Djava.security.egd=file:/dev/./urandom \
-jar /app.jar
# 声明容器提供服务端口
EXPOSE
8803
mall-oms/oms-boot/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
mall-oms
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
mall-oms/oms-boot/src/main/resources/bootstrap-prod.yml
浏览文件 @
a1c68b15
...
...
@@ -11,11 +11,11 @@ spring:
nacos
:
discovery
:
server-addr
:
http://f.youlai.tech:8848
namespace
:
prod
namespace
:
youlai-mall-
prod
config
:
server-addr
:
${spring.cloud.nacos.discovery.server-addr}
file-extension
:
yaml
namespace
:
prod
namespace
:
youlai-mall-
prod
shared-configs[0]
:
data-id
:
youlai-common.yaml
refresh
:
true
...
...
mall-oms/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-mall
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
mall-pms/pms-api/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
mall-pms
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
mall-pms/pms-boot/Dockerfile
浏览文件 @
a1c68b15
# 基础镜像
FROM
openjdk:
8-jr
e
FROM
openjdk:
17-jdk-alpin
e
# 维护者信息
MAINTAINER
youlai <youlaitech@163.com>
# 设置容器时区为当前时区
RUN
/bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
\&
&
echo
'Asia/Shanghai'
>
/etc/timezone
RUN
echo
"https://mirrors.ustc.edu.cn/alpine/v3.7/main/"
>
/etc/apk/repositories
&&
\
apk
--no-cache
add tzdata
&&
\
cp
/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&&
\
echo
"Asia/Shanghai"
>
/etc/timezone
# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层
,从而保证容器存储层的无状态化
# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层
# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
VOLUME
/tmp
...
...
@@ -15,9 +17,13 @@ VOLUME /tmp
ADD
target/pms-boot.jar app.jar
# 容器启动执行命令
ENTRYPOINT
["java", "-Xmx128m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]
CMD
java \
-Xms128m \
-Xmx128m \
-Djava.security.egd=file:/dev/./urandom \
-jar /app.jar
# 声明
运行时容器提供服务端口,仅仅是声明
# 声明
容器提供服务端口
EXPOSE
8802
...
...
mall-pms/pms-boot/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
mall-pms
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
@@ -105,7 +105,6 @@
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<version>
${spring-boot.version}
</version>
</plugin>
</plugins>
</build>
...
...
mall-pms/pms-boot/src/main/resources/bootstrap-prod.yml
浏览文件 @
a1c68b15
...
...
@@ -11,11 +11,11 @@ spring:
nacos
:
discovery
:
server-addr
:
http://f.youlai.tech:8848
namespace
:
prod
namespace
:
youlai-mall-
prod
config
:
server-addr
:
${spring.cloud.nacos.discovery.server-addr}
file-extension
:
yaml
namespace
:
prod
namespace
:
youlai-mall-
prod
# 公共配置
shared-configs[0]
:
data-id
:
youlai-common.yaml
...
...
mall-pms/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-mall
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
mall-sms/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-mall
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
mall-sms/sms-api/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
mall-sms
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
mall-sms/sms-boot/Dockerfile
浏览文件 @
a1c68b15
FROM
openjdk:8-jre
MAINTAINER
youlai youlaitech@163.com
# 基础镜像
FROM
openjdk:17-jdk-alpine
RUN
/bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
\&
&
echo
'Asia/Shanghai'
>
/etc/timezone
# 维护者信息
MAINTAINER
youlai <youlaitech@163.com>
# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层,从而保证容器存储层的无状态化
RUN
echo
"https://mirrors.ustc.edu.cn/alpine/v3.7/main/"
>
/etc/apk/repositories
&&
\
apk
--no-cache
add tzdata
&&
\
cp
/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&&
\
echo
"Asia/Shanghai"
>
/etc/timezone
# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层
# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
VOLUME
/tmp
# 复制
jar到镜像
# 复制
主机文件至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下
ADD
target/sms-boot.jar app.jar
ENTRYPOINT
["java", "-Xmx128m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]
# 容器启动执行命令
CMD
java \
-Xms128m \
-Xmx128m \
-Djava.security.egd=file:/dev/./urandom \
-jar /app.jar
# 声明容器提供服务端口
EXPOSE
8804
...
...
mall-sms/sms-boot/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
mall-sms
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
@@ -96,7 +96,6 @@
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<version>
${spring-boot.version}
</version>
</plugin>
</plugins>
</build>
...
...
mall-sms/sms-boot/src/main/resources/bootstrap-prod.yml
浏览文件 @
a1c68b15
...
...
@@ -12,12 +12,12 @@ spring:
# 注册中心
discovery
:
server-addr
:
http://f.youlai.tech:8848
namespace
:
prod
namespace
:
youlai-mall-
prod
# 配置中心
config
:
server-addr
:
${spring.cloud.nacos.discovery.server-addr}
file-extension
:
yaml
namespace
:
prod
namespace
:
youlai-mall-
prod
shared-configs[0]
:
data-id
:
youlai-common.yaml
refresh
:
true
\ No newline at end of file
mall-ums/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-mall
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
mall-ums/ums-api/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
mall-ums
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
@@ -32,7 +32,7 @@
<dependency>
<groupId>
com.youlai
</groupId>
<artifactId>
pms-api
</artifactId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
<scope>
compile
</scope>
</dependency>
...
...
mall-ums/ums-boot/Dockerfile
浏览文件 @
a1c68b15
FROM
openjdk:8-jre
MAINTAINER
youlai youlaitech@163.com
# 基础镜像
FROM
openjdk:17-jdk-alpine
RUN
/bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
\&
&
echo
'Asia/Shanghai'
>
/etc/timezone
# 维护者信息
MAINTAINER
youlai <youlaitech@163.com>
RUN
echo
"https://mirrors.ustc.edu.cn/alpine/v3.7/main/"
>
/etc/apk/repositories
&&
\
apk
--no-cache
add tzdata
&&
\
cp
/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&&
\
echo
"Asia/Shanghai"
>
/etc/timezone
# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层
# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
VOLUME
/tmp
ADD
target/ums-boot.jar mall-ums.jar
# 复制主机文件至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下
ADD
target/ums-boot.jar app.jar
# 容器启动执行命令
CMD
java \
-Xms128m \
-Xmx128m \
-Djava.security.egd=file:/dev/./urandom \
-jar /app.jar
# 声明容器提供服务端口
EXPOSE
8801
ENTRYPOINT
["java", "-Xmx128m", "-Djava.security.egd=file:/dev/./urandom","-jar","/mall-ums.jar"]
EXPOSE
8601
mall-ums/ums-boot/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
mall-ums
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
@@ -91,7 +91,6 @@
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<version>
${spring-boot.version}
</version>
</plugin>
</plugins>
</build>
...
...
mall-ums/ums-boot/src/main/resources/bootstrap-prod.yml
浏览文件 @
a1c68b15
...
...
@@ -11,11 +11,11 @@ spring:
nacos
:
discovery
:
server-addr
:
http://f.youlai.tech:8848
namespace
:
prod
namespace
:
youlai-mall-
prod
config
:
server-addr
:
${spring.cloud.nacos.discovery.server-addr}
file-extension
:
yaml
namespace
:
prod
namespace
:
youlai-mall-
prod
shared-configs[0]
:
data-id
:
youlai-common.yaml
refresh
:
true
pom.xml
浏览文件 @
a1c68b15
...
...
@@ -6,7 +6,7 @@
<groupId>
com.youlai
</groupId>
<artifactId>
youlai-mall
</artifactId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
<packaging>
pom
</packaging>
<modules>
...
...
@@ -26,7 +26,7 @@
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
3.2.
2
</version>
<version>
3.2.
3
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
...
...
@@ -35,13 +35,9 @@
<maven.compiler.source>
17
</maven.compiler.source>
<maven.compiler.target>
17
</maven.compiler.target>
<spring-boot.version>
3.2.2
</spring-boot.version>
<!-- spring cloud & alibaba -->
<spring-cloud.version>
2023.0.0
</spring-cloud.version>
<spring-cloud-alibaba.version>
2022.0.0.0
</spring-cloud-alibaba.version>
<!-- spring authorization server -->
<spring-authorization-server.version>
1.2.2
</spring-authorization-server.version>
<spring-cloud-alibaba.version>
2023.0.0.0-RC1
</spring-cloud-alibaba.version>
<!-- 数据库 & ORM -->
<mysql.version>
8.0.28
</mysql.version>
...
...
@@ -273,12 +269,6 @@
<version>
${mapstruct.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework.security
</groupId>
<artifactId>
spring-security-oauth2-authorization-server
</artifactId>
<version>
${spring-authorization-server.version}
</version>
</dependency>
<dependency>
<groupId>
com.aliyun.oss
</groupId>
<artifactId>
aliyun-sdk-oss
</artifactId>
...
...
youlai-auth/Dockerfile
浏览文件 @
a1c68b15
FROM
openjdk:
8-jr
e
FROM
openjdk:
17-jdk-alpin
e
MAINTAINER
youlai youlaitech@163.com
RUN
/bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
\&
&
echo
'Asia/Shanghai'
>
/etc/timezone
# 设置国内镜像源(中国科技大学镜像源),修改容器时区(alpine镜像需安装tzdata来设置时区),安装字体库(验证码)
RUN
echo
"https://mirrors.ustc.edu.cn/alpine/v3.7/main/"
>
/etc/apk/repositories
&&
\
apk
--no-cache
add tzdata
&&
\
cp
/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&&
\
echo
"Asia/Shanghai"
>
/etc/timezone
&&
\
apk
--no-cache
add ttf-dejavu fontconfig
# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层,从而保证容器存储层的无状态化
# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
...
...
@@ -10,9 +16,14 @@ VOLUME /tmp
# 复制jar到镜像
ADD
target/youlai-auth.jar app.jar
ENTRYPOINT
["java", "-Xmx128m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]
# 指定容器启动时执行的命令
CMD
java \
-Xms128m \
-Xmx128m \
-Djava.security.egd=file:/dev/./urandom \
-jar /app.jar
EXPOSE
8
000
EXPOSE
9
000
youlai-auth/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-mall
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
@@ -15,8 +15,8 @@
<!-- OAuth2 认证服务器-->
<dependency>
<groupId>
org.springframework.
security
</groupId>
<artifactId>
spring-
security
-oauth2-authorization-server
</artifactId>
<groupId>
org.springframework.
boot
</groupId>
<artifactId>
spring-
boot-starter
-oauth2-authorization-server
</artifactId>
</dependency>
<!-- OAuth2 客户端(第三方登录 微信、Gitee、Github、QQ)-->
...
...
@@ -107,7 +107,6 @@
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<version>
${spring-boot.version}
</version>
<executions>
<execution>
<goals>
...
...
youlai-auth/src/main/java/com/youlai/auth/config/AuthorizationServerConfig.java
浏览文件 @
a1c68b15
...
...
@@ -14,14 +14,14 @@ import com.nimbusds.jose.proc.SecurityContext;
import
com.youlai.auth.model.SysUserDetails
;
import
com.youlai.auth.oauth2.extension.captcha.CaptchaAuthenticationConverter
;
import
com.youlai.auth.oauth2.extension.captcha.CaptchaAuthenticationProvider
;
import
com.youlai.auth.oauth2.extension.
miniapp.WxMiniApp
AuthenticationConverter
;
import
com.youlai.auth.oauth2.extension.
miniapp.WxMiniApp
AuthenticationProvider
;
import
com.youlai.auth.oauth2.extension.
miniapp.WxMiniApp
AuthenticationToken
;
import
com.youlai.auth.oauth2.extension.
wechat.Wechat
AuthenticationConverter
;
import
com.youlai.auth.oauth2.extension.
wechat.Wechat
AuthenticationProvider
;
import
com.youlai.auth.oauth2.extension.
wechat.Wechat
AuthenticationToken
;
import
com.youlai.auth.oauth2.extension.password.PasswordAuthenticationConverter
;
import
com.youlai.auth.oauth2.extension.password.PasswordAuthenticationProvider
;
import
com.youlai.auth.oauth2.extension.sms
.Sms
AuthenticationConverter
;
import
com.youlai.auth.oauth2.extension.sms
.Sms
AuthenticationProvider
;
import
com.youlai.auth.oauth2.extension.sms
.Sms
AuthenticationToken
;
import
com.youlai.auth.oauth2.extension.sms
code.SmsCode
AuthenticationConverter
;
import
com.youlai.auth.oauth2.extension.sms
code.SmsCode
AuthenticationProvider
;
import
com.youlai.auth.oauth2.extension.sms
code.SmsCode
AuthenticationToken
;
import
com.youlai.auth.oauth2.handler.MyAuthenticationFailureHandler
;
import
com.youlai.auth.oauth2.handler.MyAuthenticationSuccessHandler
;
import
com.youlai.auth.oauth2.jackson.SysUserMixin
;
...
...
@@ -96,8 +96,6 @@ public class AuthorizationServerConfig {
private
final
CustomOidcUserInfoService
customOidcUserInfoService
;
private
final
OAuth2TokenCustomizer
<
JwtEncodingContext
>
jwtCustomizer
;
private
static
final
String
CUSTOM_CONSENT_PAGE_URI
=
"/oauth2/consent"
;
// 自定义授权页
private
static
final
String
CUSTOM_LOGIN_PAGE_URI
=
"/sso-login"
;
// 自定义登录页
private
final
StringRedisTemplate
redisTemplate
;
...
...
@@ -119,8 +117,6 @@ public class AuthorizationServerConfig {
OAuth2AuthorizationServerConfiguration
.
applyDefaultSecurity
(
http
);
http
.
getConfigurer
(
OAuth2AuthorizationServerConfigurer
.
class
)
.
authorizationEndpoint
(
authorizationEndpoint
->
authorizationEndpoint
.
consentPage
(
CUSTOM_CONSENT_PAGE_URI
))
// 自定义授权页
// 自定义授权模式转换器(Converter)
.
tokenEndpoint
(
tokenEndpoint
->
tokenEndpoint
.
accessTokenRequestConverters
(
...
...
@@ -130,8 +126,8 @@ public class AuthorizationServerConfig {
List
.
of
(
new
PasswordAuthenticationConverter
(),
new
CaptchaAuthenticationConverter
(),
new
W
xMiniApp
AuthenticationConverter
(),
new
SmsAuthenticationConverter
()
new
W
echat
AuthenticationConverter
(),
new
Sms
Code
AuthenticationConverter
()
)
)
)
...
...
@@ -142,8 +138,8 @@ public class AuthorizationServerConfig {
List
.
of
(
new
PasswordAuthenticationProvider
(
authenticationManager
,
authorizationService
,
tokenGenerator
),
new
CaptchaAuthenticationProvider
(
authenticationManager
,
authorizationService
,
tokenGenerator
,
redisTemplate
,
codeGenerator
),
new
W
xMiniApp
AuthenticationProvider
(
authorizationService
,
tokenGenerator
,
memberDetailsService
,
wxMaService
),
new
SmsAuthenticationProvider
(
authorizationService
,
tokenGenerator
,
memberDetailsService
,
redisTemplate
)
new
W
echat
AuthenticationProvider
(
authorizationService
,
tokenGenerator
,
memberDetailsService
,
wxMaService
),
new
Sms
Code
AuthenticationProvider
(
authorizationService
,
tokenGenerator
,
memberDetailsService
,
redisTemplate
)
)
)
)
...
...
@@ -161,17 +157,14 @@ public class AuthorizationServerConfig {
);
http
// 当用户未登录且尝试访问需要认证的端点时,重定向至登录页面
.
exceptionHandling
((
exceptions
)
->
exceptions
.
defaultAuthenticationEntryPointFor
(
new
LoginUrlAuthenticationEntryPoint
(
CUSTOM_LOGIN_PAGE_URI
),
new
LoginUrlAuthenticationEntryPoint
(
"/login"
),
new
MediaTypeRequestMatcher
(
MediaType
.
TEXT_HTML
)
)
)
// Accept access tokens for User Info and/or Client Registration
.
oauth2ResourceServer
(
oauth2ResourceServer
->
oauth2ResourceServer
.
jwt
(
Customizer
.
withDefaults
()));
return
http
.
build
();
}
...
...
@@ -374,8 +367,8 @@ public class AuthorizationServerConfig {
.
authorizationGrantType
(
AuthorizationGrantType
.
AUTHORIZATION_CODE
)
.
authorizationGrantType
(
AuthorizationGrantType
.
REFRESH_TOKEN
)
.
authorizationGrantType
(
AuthorizationGrantType
.
CLIENT_CREDENTIALS
)
.
authorizationGrantType
(
W
xMiniApp
AuthenticationToken
.
WECHAT_MINI_APP
)
// 微信小程序模式
.
authorizationGrantType
(
SmsAuthenticationToken
.
SMS_CODE
)
// 短信验证码模式
.
authorizationGrantType
(
W
echat
AuthenticationToken
.
WECHAT_MINI_APP
)
// 微信小程序模式
.
authorizationGrantType
(
Sms
Code
AuthenticationToken
.
SMS_CODE
)
// 短信验证码模式
.
redirectUri
(
"http://127.0.0.1:8080/authorized"
)
.
postLogoutRedirectUri
(
"http://127.0.0.1:8080/logged-out"
)
.
scope
(
OidcScopes
.
OPENID
)
...
...
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/sms
/Sms
AuthenticationConverter.java
→
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/sms
code/SmsCode
AuthenticationConverter.java
浏览文件 @
a1c68b15
package
com.youlai.auth.oauth2.extension.sms
;
package
com.youlai.auth.oauth2.extension.sms
code
;
import
cn.hutool.core.util.StrUtil
;
import
com.youlai.auth.util.OAuth2EndpointUtils
;
...
...
@@ -26,13 +26,13 @@ import java.util.stream.Collectors;
* @see org.springframework.security.oauth2.server.authorization.web.authentication.OAuth2AuthorizationCodeAuthenticationConverter
* @since 3.0.0
*/
public
class
SmsAuthenticationConverter
implements
AuthenticationConverter
{
public
class
Sms
Code
AuthenticationConverter
implements
AuthenticationConverter
{
@Override
public
Authentication
convert
(
HttpServletRequest
request
)
{
// 授权类型 (必需)
String
grantType
=
request
.
getParameter
(
OAuth2ParameterNames
.
GRANT_TYPE
);
if
(!
SmsAuthenticationToken
.
SMS_CODE
.
getValue
().
equals
(
grantType
))
{
if
(!
Sms
Code
AuthenticationToken
.
SMS_CODE
.
getValue
().
equals
(
grantType
))
{
return
null
;
}
...
...
@@ -57,20 +57,20 @@ public class SmsAuthenticationConverter implements AuthenticationConverter {
}
// 手机号(必需)
String
mobile
=
parameters
.
getFirst
(
SmsParameterNames
.
MOBILE
);
String
mobile
=
parameters
.
getFirst
(
Sms
Code
ParameterNames
.
MOBILE
);
if
(
StrUtil
.
isBlank
(
mobile
))
{
OAuth2EndpointUtils
.
throwError
(
OAuth2ErrorCodes
.
INVALID_REQUEST
,
SmsParameterNames
.
MOBILE
,
Sms
Code
ParameterNames
.
MOBILE
,
OAuth2EndpointUtils
.
ACCESS_TOKEN_REQUEST_ERROR_URI
);
}
// 验证码(必需)
String
code
=
parameters
.
getFirst
(
SmsParameterNames
.
CODE
);
String
code
=
parameters
.
getFirst
(
Sms
Code
ParameterNames
.
CODE
);
if
(
StrUtil
.
isBlank
(
code
))
{
OAuth2EndpointUtils
.
throwError
(
OAuth2ErrorCodes
.
INVALID_REQUEST
,
SmsParameterNames
.
CODE
,
Sms
Code
ParameterNames
.
CODE
,
OAuth2EndpointUtils
.
ACCESS_TOKEN_REQUEST_ERROR_URI
);
}
...
...
@@ -85,7 +85,7 @@ public class SmsAuthenticationConverter implements AuthenticationConverter {
)
.
collect
(
Collectors
.
toMap
(
Map
.
Entry
::
getKey
,
e
->
e
.
getValue
().
get
(
0
)));
return
new
SmsAuthenticationToken
(
return
new
Sms
Code
AuthenticationToken
(
clientPrincipal
,
requestedScopes
,
additionalParameters
...
...
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/sms
/Sms
AuthenticationProvider.java
→
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/sms
code/SmsCode
AuthenticationProvider.java
浏览文件 @
a1c68b15
package
com.youlai.auth.oauth2.extension.sms
;
package
com.youlai.auth.oauth2.extension.sms
code
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.util.StrUtil
;
...
...
@@ -34,7 +34,7 @@ import java.util.Map;
* @since 3.0.0
*/
@Slf4j
public
class
SmsAuthenticationProvider
implements
AuthenticationProvider
{
public
class
Sms
Code
AuthenticationProvider
implements
AuthenticationProvider
{
private
static
final
String
ERROR_URI
=
"https://datatracker.ietf.org/doc/html/rfc6749#section-5.2"
;
...
...
@@ -52,7 +52,7 @@ public class SmsAuthenticationProvider implements AuthenticationProvider {
* @param tokenGenerator the token generator
* @since 0.2.3
*/
public
SmsAuthenticationProvider
(
public
Sms
Code
AuthenticationProvider
(
OAuth2AuthorizationService
authorizationService
,
OAuth2TokenGenerator
<?
extends
OAuth2Token
>
tokenGenerator
,
MemberDetailsService
memberDetailsService
,
...
...
@@ -72,21 +72,21 @@ public class SmsAuthenticationProvider implements AuthenticationProvider {
@Override
public
Authentication
authenticate
(
Authentication
authentication
)
throws
AuthenticationException
{
Sms
AuthenticationToken
smsAuthenticationToken
=
(
Sms
AuthenticationToken
)
authentication
;
Sms
CodeAuthenticationToken
smsCodeAuthenticationToken
=
(
SmsCode
AuthenticationToken
)
authentication
;
OAuth2ClientAuthenticationToken
clientPrincipal
=
OAuth2AuthenticationProviderUtils
.
getAuthenticatedClientElseThrowInvalidClient
(
smsAuthenticationToken
);
.
getAuthenticatedClientElseThrowInvalidClient
(
sms
Code
AuthenticationToken
);
RegisteredClient
registeredClient
=
clientPrincipal
.
getRegisteredClient
();
// 验证客户端是否支持授权类型(grant_type=wechat_mini_app)
if
(!
registeredClient
.
getAuthorizationGrantTypes
().
contains
(
SmsAuthenticationToken
.
SMS_CODE
))
{
if
(!
registeredClient
.
getAuthorizationGrantTypes
().
contains
(
Sms
Code
AuthenticationToken
.
SMS_CODE
))
{
throw
new
OAuth2AuthenticationException
(
OAuth2ErrorCodes
.
UNAUTHORIZED_CLIENT
);
}
// 短信验证码校验
Map
<
String
,
Object
>
additionalParameters
=
smsAuthenticationToken
.
getAdditionalParameters
();
String
mobile
=
(
String
)
additionalParameters
.
get
(
SmsParameterNames
.
MOBILE
);
String
code
=
(
String
)
additionalParameters
.
get
(
SmsParameterNames
.
CODE
);
Map
<
String
,
Object
>
additionalParameters
=
sms
Code
AuthenticationToken
.
getAdditionalParameters
();
String
mobile
=
(
String
)
additionalParameters
.
get
(
Sms
Code
ParameterNames
.
MOBILE
);
String
code
=
(
String
)
additionalParameters
.
get
(
Sms
Code
ParameterNames
.
CODE
);
if
(!
code
.
equals
(
"666666"
))
{
// 666666 是后门,因为短信收费,正式环境删除这个if
String
codeKey
=
RedisConstants
.
LOGIN_SMS_CODE_PREFIX
+
mobile
;
...
...
@@ -107,8 +107,8 @@ public class SmsAuthenticationProvider implements AuthenticationProvider {
.
registeredClient
(
registeredClient
)
.
principal
(
usernamePasswordAuthentication
)
.
authorizationServerContext
(
AuthorizationServerContextHolder
.
getContext
())
.
authorizationGrantType
(
SmsAuthenticationToken
.
SMS_CODE
)
.
authorizationGrant
(
smsAuthenticationToken
);
.
authorizationGrantType
(
Sms
Code
AuthenticationToken
.
SMS_CODE
)
.
authorizationGrant
(
sms
Code
AuthenticationToken
);
// 生成访问令牌(Access Token)
OAuth2TokenContext
tokenContext
=
tokenContextBuilder
.
tokenType
(
OAuth2TokenType
.
ACCESS_TOKEN
).
build
();
...
...
@@ -124,7 +124,7 @@ public class SmsAuthenticationProvider implements AuthenticationProvider {
generatedAccessToken
.
getExpiresAt
(),
tokenContext
.
getAuthorizedScopes
());
OAuth2Authorization
.
Builder
authorizationBuilder
=
OAuth2Authorization
.
withRegisteredClient
(
registeredClient
)
.
principalName
(
userDetails
.
getUsername
())
.
authorizationGrantType
(
SmsAuthenticationToken
.
SMS_CODE
)
.
authorizationGrantType
(
Sms
Code
AuthenticationToken
.
SMS_CODE
)
.
attribute
(
Principal
.
class
.
getName
(),
usernamePasswordAuthentication
);
if
(
generatedAccessToken
instanceof
ClaimAccessor
)
{
authorizationBuilder
.
token
(
accessToken
,
(
metadata
)
->
...
...
@@ -159,7 +159,7 @@ public class SmsAuthenticationProvider implements AuthenticationProvider {
@Override
public
boolean
supports
(
Class
<?>
authentication
)
{
return
SmsAuthenticationToken
.
class
.
isAssignableFrom
(
authentication
);
return
Sms
Code
AuthenticationToken
.
class
.
isAssignableFrom
(
authentication
);
}
}
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/sms
/Sms
AuthenticationToken.java
→
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/sms
code/SmsCode
AuthenticationToken.java
浏览文件 @
a1c68b15
package
com.youlai.auth.oauth2.extension.sms
;
package
com.youlai.auth.oauth2.extension.sms
code
;
import
jakarta.annotation.Nullable
;
import
org.springframework.security.core.Authentication
;
...
...
@@ -14,10 +14,10 @@ import java.util.Set;
/**
* 短信验证码身份验证令牌
*
* @author
haoxr
* @author
Ray Hao
* @since 3.0.0
*/
public
class
SmsAuthenticationToken
extends
OAuth2AuthorizationGrantAuthenticationToken
{
public
class
Sms
Code
AuthenticationToken
extends
OAuth2AuthorizationGrantAuthenticationToken
{
/**
* 令牌申请访问范围
...
...
@@ -27,15 +27,15 @@ public class SmsAuthenticationToken extends OAuth2AuthorizationGrantAuthenticati
/**
* 授权类型(短信验证码: sms_code)
*/
public
static
final
AuthorizationGrantType
SMS_CODE
=
new
AuthorizationGrantType
(
"sms"
);
public
static
final
AuthorizationGrantType
SMS_CODE
=
new
AuthorizationGrantType
(
"sms
_code
"
);
protected
SmsAuthenticationToken
(
protected
Sms
Code
AuthenticationToken
(
Authentication
clientPrincipal
,
Set
<
String
>
scopes
,
@Nullable
Map
<
String
,
Object
>
additionalParameters
)
{
super
(
SmsAuthenticationToken
.
SMS_CODE
,
clientPrincipal
,
additionalParameters
);
super
(
Sms
Code
AuthenticationToken
.
SMS_CODE
,
clientPrincipal
,
additionalParameters
);
this
.
scopes
=
Collections
.
unmodifiableSet
(
scopes
!=
null
?
new
HashSet
<>(
scopes
)
:
Collections
.
emptySet
());
}
...
...
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/sms
/Sms
ParameterNames.java
→
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/sms
code/SmsCode
ParameterNames.java
浏览文件 @
a1c68b15
...
...
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package
com.youlai.auth.oauth2.extension.sms
;
package
com.youlai.auth.oauth2.extension.sms
code
;
/**
* 短信验证码模式参数名称常量
...
...
@@ -22,7 +22,7 @@ package com.youlai.auth.oauth2.extension.sms;
* @author haoxr
* @since 3.0.0
*/
public
final
class
SmsParameterNames
{
public
final
class
Sms
Code
ParameterNames
{
/**
* 手机号
...
...
@@ -35,7 +35,7 @@ public final class SmsParameterNames {
public
static
final
String
CODE
=
"code"
;
private
SmsParameterNames
()
{
private
Sms
Code
ParameterNames
()
{
}
}
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/
miniapp/WxMiniApp
AuthenticationConverter.java
→
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/
wechat/Wechat
AuthenticationConverter.java
浏览文件 @
a1c68b15
package
com.youlai.auth.oauth2.extension.
miniapp
;
package
com.youlai.auth.oauth2.extension.
wechat
;
import
cn.hutool.core.util.StrUtil
;
import
com.youlai.auth.util.OAuth2EndpointUtils
;
...
...
@@ -26,7 +26,7 @@ import java.util.stream.Collectors;
* @see org.springframework.security.oauth2.server.authorization.web.authentication.OAuth2AuthorizationCodeAuthenticationConverter
* @since 3.0.0
*/
public
class
W
xMiniApp
AuthenticationConverter
implements
AuthenticationConverter
{
public
class
W
echat
AuthenticationConverter
implements
AuthenticationConverter
{
public
static
final
String
ACCESS_TOKEN_REQUEST_ERROR_URI
=
"https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html"
;
...
...
@@ -34,7 +34,7 @@ public class WxMiniAppAuthenticationConverter implements AuthenticationConverter
public
Authentication
convert
(
HttpServletRequest
request
)
{
// 授权类型 (必需)
String
grantType
=
request
.
getParameter
(
OAuth2ParameterNames
.
GRANT_TYPE
);
if
(!
W
xMiniApp
AuthenticationToken
.
WECHAT_MINI_APP
.
getValue
().
equals
(
grantType
))
{
if
(!
W
echat
AuthenticationToken
.
WECHAT_MINI_APP
.
getValue
().
equals
(
grantType
))
{
return
null
;
}
...
...
@@ -76,7 +76,7 @@ public class WxMiniAppAuthenticationConverter implements AuthenticationConverter
)
.
collect
(
Collectors
.
toMap
(
Map
.
Entry
::
getKey
,
e
->
e
.
getValue
().
get
(
0
)));
return
new
W
xMiniApp
AuthenticationToken
(
return
new
W
echat
AuthenticationToken
(
clientPrincipal
,
requestedScopes
,
additionalParameters
...
...
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/
miniapp/WxMiniApp
AuthenticationProvider.java
→
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/
wechat/Wechat
AuthenticationProvider.java
浏览文件 @
a1c68b15
package
com.youlai.auth.oauth2.extension.
miniapp
;
package
com.youlai.auth.oauth2.extension.
wechat
;
import
cn.binarywang.wx.miniapp.api.WxMaService
;
import
cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult
;
...
...
@@ -35,7 +35,7 @@ import java.util.Map;
* @since 3.0.0
*/
@Slf4j
public
class
W
xMiniApp
AuthenticationProvider
implements
AuthenticationProvider
{
public
class
W
echat
AuthenticationProvider
implements
AuthenticationProvider
{
private
static
final
String
ERROR_URI
=
"https://datatracker.ietf.org/doc/html/rfc6749#section-5.2"
;
...
...
@@ -54,7 +54,7 @@ public class WxMiniAppAuthenticationProvider implements AuthenticationProvider {
* @param tokenGenerator the token generator
* @since 0.2.3
*/
public
W
xMiniApp
AuthenticationProvider
(
public
W
echat
AuthenticationProvider
(
OAuth2AuthorizationService
authorizationService
,
OAuth2TokenGenerator
<?
extends
OAuth2Token
>
tokenGenerator
,
MemberDetailsService
memberDetailsService
,
...
...
@@ -74,19 +74,19 @@ public class WxMiniAppAuthenticationProvider implements AuthenticationProvider {
@Override
public
Authentication
authenticate
(
Authentication
authentication
)
throws
AuthenticationException
{
W
xMiniAppAuthenticationToken
wxMiniAppAuthenticationToken
=
(
WxMiniApp
AuthenticationToken
)
authentication
;
W
echatAuthenticationToken
wechatAuthenticationToken
=
(
Wechat
AuthenticationToken
)
authentication
;
OAuth2ClientAuthenticationToken
clientPrincipal
=
OAuth2AuthenticationProviderUtils
.
getAuthenticatedClientElseThrowInvalidClient
(
w
xMiniApp
AuthenticationToken
);
.
getAuthenticatedClientElseThrowInvalidClient
(
w
echat
AuthenticationToken
);
RegisteredClient
registeredClient
=
clientPrincipal
.
getRegisteredClient
();
// 验证客户端是否支持授权类型(grant_type=wechat_mini_app)
if
(!
registeredClient
.
getAuthorizationGrantTypes
().
contains
(
W
xMiniApp
AuthenticationToken
.
WECHAT_MINI_APP
))
{
if
(!
registeredClient
.
getAuthorizationGrantTypes
().
contains
(
W
echat
AuthenticationToken
.
WECHAT_MINI_APP
))
{
throw
new
OAuth2AuthenticationException
(
OAuth2ErrorCodes
.
UNAUTHORIZED_CLIENT
);
}
// 微信 code 获取 openid
Map
<
String
,
Object
>
additionalParameters
=
w
xMiniApp
AuthenticationToken
.
getAdditionalParameters
();
Map
<
String
,
Object
>
additionalParameters
=
w
echat
AuthenticationToken
.
getAdditionalParameters
();
String
code
=
(
String
)
additionalParameters
.
get
(
OAuth2ParameterNames
.
CODE
);
WxMaJscode2SessionResult
sessionInfo
;
try
{
...
...
@@ -106,8 +106,8 @@ public class WxMiniAppAuthenticationProvider implements AuthenticationProvider {
.
registeredClient
(
registeredClient
)
.
principal
(
usernamePasswordAuthentication
)
.
authorizationServerContext
(
AuthorizationServerContextHolder
.
getContext
())
.
authorizationGrantType
(
W
xMiniApp
AuthenticationToken
.
WECHAT_MINI_APP
)
.
authorizationGrant
(
w
xMiniApp
AuthenticationToken
);
.
authorizationGrantType
(
W
echat
AuthenticationToken
.
WECHAT_MINI_APP
)
.
authorizationGrant
(
w
echat
AuthenticationToken
);
// 生成访问令牌(Access Token)
OAuth2TokenContext
tokenContext
=
tokenContextBuilder
.
tokenType
(
OAuth2TokenType
.
ACCESS_TOKEN
).
build
();
...
...
@@ -123,7 +123,7 @@ public class WxMiniAppAuthenticationProvider implements AuthenticationProvider {
generatedAccessToken
.
getExpiresAt
(),
tokenContext
.
getAuthorizedScopes
());
OAuth2Authorization
.
Builder
authorizationBuilder
=
OAuth2Authorization
.
withRegisteredClient
(
registeredClient
)
.
principalName
(
userDetails
.
getUsername
())
.
authorizationGrantType
(
W
xMiniApp
AuthenticationToken
.
WECHAT_MINI_APP
)
.
authorizationGrantType
(
W
echat
AuthenticationToken
.
WECHAT_MINI_APP
)
.
attribute
(
Principal
.
class
.
getName
(),
usernamePasswordAuthentication
);
if
(
generatedAccessToken
instanceof
ClaimAccessor
)
{
authorizationBuilder
.
token
(
accessToken
,
(
metadata
)
->
...
...
@@ -157,7 +157,7 @@ public class WxMiniAppAuthenticationProvider implements AuthenticationProvider {
@Override
public
boolean
supports
(
Class
<?>
authentication
)
{
return
W
xMiniApp
AuthenticationToken
.
class
.
isAssignableFrom
(
authentication
);
return
W
echat
AuthenticationToken
.
class
.
isAssignableFrom
(
authentication
);
}
}
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/
miniapp/WxMiniApp
AuthenticationToken.java
→
youlai-auth/src/main/java/com/youlai/auth/oauth2/extension/
wechat/Wechat
AuthenticationToken.java
浏览文件 @
a1c68b15
package
com.youlai.auth.oauth2.extension.
miniapp
;
package
com.youlai.auth.oauth2.extension.
wechat
;
import
jakarta.annotation.Nullable
;
import
org.springframework.security.core.Authentication
;
...
...
@@ -18,7 +18,7 @@ import java.util.Set;
* @see OAuth2AuthorizationGrantAuthenticationToken
* @since 3.0.0
*/
public
class
W
xMiniApp
AuthenticationToken
extends
OAuth2AuthorizationGrantAuthenticationToken
{
public
class
W
echat
AuthenticationToken
extends
OAuth2AuthorizationGrantAuthenticationToken
{
/**
* 令牌申请访问范围
...
...
@@ -28,15 +28,15 @@ public class WxMiniAppAuthenticationToken extends OAuth2AuthorizationGrantAuthen
/**
* 授权类型:微信小程序
*/
public
static
final
AuthorizationGrantType
WECHAT_MINI_APP
=
new
AuthorizationGrantType
(
"w
x_mini_app
"
);
public
static
final
AuthorizationGrantType
WECHAT_MINI_APP
=
new
AuthorizationGrantType
(
"w
echat
"
);
protected
W
xMiniApp
AuthenticationToken
(
protected
W
echat
AuthenticationToken
(
Authentication
clientPrincipal
,
Set
<
String
>
scopes
,
@Nullable
Map
<
String
,
Object
>
additionalParameters
)
{
super
(
W
xMiniApp
AuthenticationToken
.
WECHAT_MINI_APP
,
clientPrincipal
,
additionalParameters
);
super
(
W
echat
AuthenticationToken
.
WECHAT_MINI_APP
,
clientPrincipal
,
additionalParameters
);
this
.
scopes
=
Collections
.
unmodifiableSet
(
scopes
!=
null
?
new
HashSet
<>(
scopes
)
:
Collections
.
emptySet
());
}
...
...
youlai-auth/src/main/resources/bootstrap-prod.yml
浏览文件 @
a1c68b15
server
:
port
:
8
000
port
:
9
000
spring
:
mvc
:
...
...
@@ -10,12 +10,12 @@ spring:
# 注册中心
discovery
:
server-addr
:
http://f.youlai.tech:8848
namespace
:
prod
namespace
:
youlai-mall-
prod
# 配置中心
config
:
server-addr
:
${spring.cloud.nacos.discovery.server-addr}
file-extension
:
yaml
namespace
:
prod
namespace
:
youlai-mall-
prod
shared-configs[0]
:
data-id
:
youlai-common.yaml
refresh
:
true
\ No newline at end of file
youlai-common/common-apidoc/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -2,14 +2,14 @@
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<artifactId>
youlai-common
</artifactId>
<groupId>
com.youlai
</groupId>
<artifactId>
youlai-mall
</artifactId>
<version>
3.1.0
</version>
<relativePath>
../../pom.xml
</relativePath>
<version>
3.2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
common-apidoc
</artifactId>
<properties>
...
...
@@ -24,7 +24,6 @@
<groupId>
com.github.xiaoymin
</groupId>
<artifactId>
knife4j-openapi3-jakarta-spring-boot-starter
</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
youlai-common/common-core/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-common
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
youlai-common/common-mybatis/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-common
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
youlai-common/common-rabbitmq/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-common
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
youlai-common/common-redis/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-common
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
youlai-common/common-seata/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-common
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
youlai-common/common-security/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-common
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
youlai-common/common-sms/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-common
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
youlai-common/common-web/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-common
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
youlai-common/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -7,7 +7,7 @@
<parent>
<artifactId>
youlai-mall
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<artifactId>
youlai-common
</artifactId>
...
...
youlai-gateway/Dockerfile
浏览文件 @
a1c68b15
FROM
openjdk:
8-jr
e
FROM
openjdk:
17-jdk-alpin
e
MAINTAINER
youlai youlaitech@163.com
RUN
/bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
\&
&
echo
'Asia/Shanghai'
>
/etc/timezone
# 设置国内镜像源(中国科技大学镜像源),修改容器时区(alpine镜像需安装tzdata来设置时区)
RUN
echo
"https://mirrors.ustc.edu.cn/alpine/v3.7/main/"
>
/etc/apk/repositories
&&
\
apk
--no-cache
add tzdata
&&
\
cp
/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&&
\
echo
"Asia/Shanghai"
>
/etc/timezone
# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层,从而保证容器存储层的无状态化
# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
...
...
@@ -11,7 +14,11 @@ VOLUME /tmp
# 复制jar至镜像
ADD
target/youlai-gateway.jar app.jar
ENTRYPOINT
["java", "-Xmx128m", "-Djava.security.egd=file:/dev/./urandom","-Dcsp.sentinel.app.type=1", "-jar", "/app.jar"]
CMD
java \
-Xms128m \
-Xmx128m \
-Djava.security.egd=file:/dev/./urandom \
-jar /app.jar
EXPOSE
9999
...
...
youlai-gateway/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -6,7 +6,7 @@
<parent>
<artifactId>
youlai-mall
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<artifactId>
youlai-gateway
</artifactId>
...
...
youlai-gateway/src/main/resources/bootstrap-prod.yml
浏览文件 @
a1c68b15
...
...
@@ -10,12 +10,11 @@ spring:
nacos
:
discovery
:
server-addr
:
http://f.youlai.tech:8848
namespace
:
prod
namespace
:
youlai-mall-
prod
config
:
server-addr
:
${spring.cloud.nacos.discovery.server-addr}
file-extension
:
yaml
namespace
:
prod
namespace
:
youlai-mall-
prod
shared-configs[0]
:
data-id
:
youlai-common.yaml
namespace
:
prod
refresh
:
true
youlai-system/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-mall
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
youlai-system/system-api/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-system
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
youlai-system/system-boot/Dockerfile
浏览文件 @
a1c68b15
# 基础镜像
FROM
openjdk:
8-jr
e
FROM
openjdk:
17-jdk-alpin
e
# 维护者信息
MAINTAINER
youlai <youlaitech@163.com>
# 设置容器时区为当前时区
RUN
/bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
\&
&
echo
'Asia/Shanghai'
>
/etc/timezone
RUN
echo
"https://mirrors.ustc.edu.cn/alpine/v3.7/main/"
>
/etc/apk/repositories
&&
\
apk
--no-cache
add tzdata
&&
\
cp
/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&&
\
echo
"Asia/Shanghai"
>
/etc/timezone
# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层
# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
...
...
@@ -15,7 +17,11 @@ VOLUME /tmp
ADD
target/system-boot.jar app.jar
# 容器启动执行命令
ENTRYPOINT
["java", "-Xmx128m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]
CMD
java \
-Xms128m \
-Xmx128m \
-Djava.security.egd=file:/dev/./urandom \
-jar /app.jar
# 声明容器提供服务端口
EXPOSE
8800
...
...
youlai-system/system-boot/pom.xml
浏览文件 @
a1c68b15
...
...
@@ -5,7 +5,7 @@
<parent>
<artifactId>
youlai-system
</artifactId>
<groupId>
com.youlai
</groupId>
<version>
3.
1.0
</version>
<version>
3.
2.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
@@ -125,7 +125,6 @@
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<version>
${spring-boot.version}
</version>
</plugin>
</plugins>
</build>
...
...
youlai-system/system-boot/src/main/resources/bootstrap-prod.yml
浏览文件 @
a1c68b15
...
...
@@ -11,13 +11,12 @@ spring:
nacos
:
discovery
:
server-addr
:
http://f.youlai.tech:8848
namespace
:
prod
namespace
:
youlai-mall-
prod
config
:
server-addr
:
${spring.cloud.nacos.discovery.server-addr}
file-extension
:
yaml
namespace
:
prod
namespace
:
youlai-mall-
prod
shared-configs[0]
:
data-id
:
youlai-common.yaml
namespace
:
prod
refresh
:
true