diff --git a/pom.xml b/pom.xml
index 4f21cef..d0d373a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
com.chinaweal.youfool
youfool-course
1.0.0-SNAPSHOT
- war
+ jar
${project.artifactId}
https://www.chinaweal.com.cn
youfool课程
@@ -58,20 +58,65 @@
org.springframework.boot
spring-boot-starter-thymeleaf
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
+ ${project.artifactId}
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.14.1
+
+
+
+ -parameters
+
+
+
+
org.springframework.boot
spring-boot-maven-plugin
- ${spring.boot.version}
+
+
+ ZIP
+
+
+ nothing
+ nothing
+
+
+
+
+
+
+ repackage
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.8.1
+
+
+ copy-dependencies
+ package
+
+ copy-dependencies
+
+
+
+ ${project.build.directory}/libs
+
+ org.projectlombok
+
+
+
+
diff --git a/src/main/java/com/chinaweal/youfool/course/config/SpringMvcConfig.java b/src/main/java/com/chinaweal/youfool/course/config/SpringMvcConfig.java
index 6e11d91..38af79f 100644
--- a/src/main/java/com/chinaweal/youfool/course/config/SpringMvcConfig.java
+++ b/src/main/java/com/chinaweal/youfool/course/config/SpringMvcConfig.java
@@ -37,7 +37,7 @@ public class SpringMvcConfig implements WebMvcConfigurer {
// SaRouter.match("/notice/**", r -> StpUtil.checkPermission("notice"));
// SaRouter.match("/comment/**", r -> StpUtil.checkPermission("comment"));
// 指定一条 match 规则
- SaRouter.notMatch("/login**","/oauth2**","/user/auth/**", "/test/**", "/doc.html**", "/cross/**", "/swagger*",
+ SaRouter.notMatch("/login**","/oauth2/**","/user/auth/**", "/test/**", "/doc.html**", "/cross/**", "/swagger*",
"/cms/index.html", "/cms/static/**", "/cms/favicon.ico", "/cms/user/login", "/network/ping", "/error", "/static/data/**")
.match("/**", r -> StpUtil.checkLogin());
})).addPathPatterns("/**");
diff --git a/src/main/java/com/chinaweal/youfool/course/controller/OAuth2Controller.java b/src/main/java/com/chinaweal/youfool/course/controller/OAuth2Controller.java
index 3c0ae1a..db783d2 100644
--- a/src/main/java/com/chinaweal/youfool/course/controller/OAuth2Controller.java
+++ b/src/main/java/com/chinaweal/youfool/course/controller/OAuth2Controller.java
@@ -2,6 +2,7 @@ package com.chinaweal.youfool.course.controller;
import cn.dev33.satoken.session.SaSession;
import cn.dev33.satoken.stp.StpUtil;
+import com.alibaba.fastjson2.JSONObject;
import com.chinaweal.youfool.course.entity.SysUser;
import com.chinaweal.youfool.course.entity.UserBaseExtend;
import com.chinaweal.youfool.course.service.SysUserService;
@@ -91,10 +92,11 @@ public class OAuth2Controller {
}
String accessToken = (String) tokenResponse.get("access_token");
+ log.info("获取access_token成功: {}", accessToken);
// 获取用户信息
Map userInfo = getUserInfo(accessToken);
-
+ log.info("登录用户信息:{}", JSONObject.toJSONString(userInfo));
// 处理用户登录
handleUserLogin(userInfo);
@@ -118,7 +120,7 @@ public class OAuth2Controller {
headers.put("Authorization", "token " + accessToken);
org.springframework.http.HttpEntity> entity = new org.springframework.http.HttpEntity<>(headers);
- Map userInfo = restTemplate.exchange(userUrl,
+ Map userInfo = restTemplate.exchange(userUrl + "?access_token=" + accessToken,
org.springframework.http.HttpMethod.GET, entity, Map.class).getBody();
return userInfo;
@@ -130,31 +132,33 @@ public class OAuth2Controller {
* @param userInfo 用户信息
*/
private void handleUserLogin(Map userInfo) {
- String username = (String) userInfo.get("username");
+ String username = (String) userInfo.get("preferred_username");
+ String name = (String) userInfo.get("name");
String email = (String) userInfo.get("email");
- String avatarUrl = (String) userInfo.get("avatar_url");
- Integer id = (Integer) userInfo.get("id");
+ String avatarUrl = (String) userInfo.get("picture");
+ String id = (String) userInfo.get("sub");
log.info("Gitea用户登录成功: username={}, email={}, id={}", username, email, id);
// 生成Gitea Open ID
- String giteaOpenId = String.valueOf(id);
// 检查用户是否已存在
- SysUser sysUser = sysUserService.getUserByGiteaOpenId(giteaOpenId);
+ SysUser sysUser = sysUserService.getUserByGiteaOpenId(id);
// 如果用户不存在,则创建新用户
if (sysUser == null) {
sysUser = new SysUser();
sysUser.setUsername(username);
- sysUser.setNickname(username);
+ sysUser.setNickname(name);
+ sysUser.setName(name);
sysUser.setEmail(email);
sysUser.setAvatar(avatarUrl);
- sysUser.setGiteaOpenId(giteaOpenId);
+ sysUser.setGiteaOpenId(id);
sysUserService.save(sysUser);
} else {
// 更新用户信息
sysUser.setEmail(email);
+ sysUser.setName(name);
sysUser.setAvatar(avatarUrl);
sysUserService.updateById(sysUser);
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 30855ee..15e77a5 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -9,12 +9,12 @@ spring:
dynamic:
datasource:
master:
- url: jdbc:postgresql://172.22.80.157:5432/pms
+ url: jdbc:postgresql://172.22.80.157:5432/course
username: pms_dev
password: 123456
driver-class-name: org.postgresql.Driver # 3.2.0开始支持SPI可省略此配置
youfool:
- url: jdbc:postgresql://172.22.80.157:5432/pms
+ url: jdbc:postgresql://172.22.80.157:5432/course
username: pms_dev
password: 123456
driver-class-name: org.postgresql.Driver
\ No newline at end of file
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 223e344..dc82b1a 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -9,12 +9,12 @@ spring:
dynamic:
datasource:
master:
- url: jdbc:postgresql://172.22.80.157:5432/pms
+ url: jdbc:postgresql://172.22.80.157:5432/course
username: pms_dev
password: 123456
driver-class-name: org.postgresql.Driver # 3.2.0开始支持SPI可省略此配置
youfool:
- url: jdbc:postgresql://172.22.80.157:5432/pms
+ url: jdbc:postgresql://172.22.80.157:5432/course
username: pms_dev
password: 123456
driver-class-name: org.postgresql.Driver
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 69d9e58..460d2f1 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -4,9 +4,9 @@ logging:
filePath: ${LOG_PATH:../logs}
spring:
profiles:
- active: dev
+ active: ${COURSE_ACTIVE:dev}
application:
- name: youfool-lesson
+ name: youfool-course
# Thymeleaf配置
thymeleaf:
cache: false
@@ -76,7 +76,9 @@ knife4j:
server:
servlet:
- context-path: /course
+ context-path: ${COURSE_CONTEXT_PATH:/course}
+ port: ${COURSE_PORT:8080}
+
# Sa-Token配置
sa-token:
# token名称 (同时也是cookie名称)
@@ -95,9 +97,10 @@ sa-token:
is-log: false
# Gitea OAuth2配置
gitea:
- client-id: ${GITEA_CLIENT_ID:your-gitea-client-id}
- client-secret: ${GITEA_CLIENT_SECRET:your-gitea-client-secret}
- auth-url: ${GITEA_AUTH_URL:https://gitea.com/login/oauth/authorize}
- token-url: ${GITEA_TOKEN_URL:https://gitea.com/login/oauth/access_token}
- user-url: ${GITEA_USER_URL:https://gitea.com/api/v1/user}
- redirect-uri: ${BASE_URL:http://localhost:8080}/course/oauth2/gitea/callback
\ No newline at end of file
+ client-id: ${GITEA_CLIENT_ID:fc3fb72c-ed76-4712-99d9-0c3b5d437117}
+ client-secret: ${GITEA_CLIENT_SECRET:gto_i5hvz65jbrsv6mdwfu2t4siz3zrxfairg2cx454g3z6a5qy5t5na}
+ auth-url: ${GITEA_AUTH_URL:http://47.107.61.133:3000/login/oauth/authorize}
+ token-url: ${GITEA_TOKEN_URL:http://47.107.61.133:3000/login/oauth/access_token}
+ user-url: ${GITEA_USER_URL:http://47.107.61.133:3000/login/oauth/userinfo}
+ redirect-uri: ${BASE_URL:http://localhost:8080}/course/oauth2/gitea/callback
+ token: ${GITEA_TOKEN:}
\ No newline at end of file
diff --git a/src/test/java/com/chinaweal/youfool/course/AppTest.java b/src/test/java/com/chinaweal/youfool/course/AppTest.java
deleted file mode 100644
index 2d2b168..0000000
--- a/src/test/java/com/chinaweal/youfool/course/AppTest.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.chinaweal.youfool.course;
-
-import org.junit.Test;
-
-import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-//@RunWith(SpringRunner.class)
-//@SpringBootTest(classes = {YoufoolPmsApplication.class})
-public class AppTest {
-
- @Test
- public void test1() {
- String no = String.format("%04d", 51);
- System.out.println(no);
- System.out.println("12345678");
- }
-
- @Test
- public void test2() {
- List