Browse Source

登录页面接口调用server端

jindi 1 year ago
parent
commit
2a0ed639b0

+ 55 - 186
.idea/workspace.xml

@@ -42,155 +42,16 @@
       <change afterPath="$PROJECT_DIR$/log/ssp-server/2023_08/2023_08_22/2023_08_22_18(0).log" afterDir="false" />
       <change afterPath="$PROJECT_DIR$/log/ssp-server/2023_08/2023_08_23/2023_08_23_09(0).log" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/META-INF/spring-configuration-metadata.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/application-dev.yml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/application-prod.yml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/application.yml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/SspServerApplication.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/SaPlusStartup.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/config/MyConfig.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/config/PerformConfigure.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/config/ProjectConfigure.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/config/RemoveDruidAdConfig$1.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/config/RemoveDruidAdConfig.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/config/SystemObject.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/global/ApilogAspect.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/global/ApilogStartInterceptor$1.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/global/ApilogStartInterceptor.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/global/GlobalExceptionHandler.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/global/NotFoundHandle.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/mybatis/MybatisMapperDynamicLoader$1.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/mybatis/MybatisMapperDynamicLoader$Scanner.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/mybatis/MybatisMapperDynamicLoader.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/mybatis/MybatisStdOutImpl.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/mybatis/RefConfig.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/satoken/AuthConst.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/satoken/SaTokenConfigure.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/satoken/StpInterfaceImpl.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/current/satoken/StpUserUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sso/CustomSaSsoTemplate.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sso/SsoServerController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sta_data/StaDataController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sta_data/StaDataMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sta_data/StaDataMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_client/SysClient.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_client/SysClientController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_client/SysClientMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_client/SysClientMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_client/SysClientUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_client_visit/SysClientVisit.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_client_visit/SysClientVisitController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_client_visit/SysClientVisitMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_client_visit/SysClientVisitMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_client_visit/SysClientVisitUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_login_log/SysLoginLog.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_login_log/SysLoginLogController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_login_log/SysLoginLogMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_login_log/SysLoginLogMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_login_log/SysLoginLogUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user/HttpContextUtils.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user/ReadUserInfoExcel.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user/SysUser.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user/SysUserController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user/SysUserMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user/SysUserMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user/SysUserService.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user/SysUserUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_acc/SysUserAcc.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_acc/SysUserAccController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_acc/SysUserAccMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_acc/SysUserAccMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_acc/SysUserAccService.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_acc/SysUserAccUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_online/SysUserOnlineController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_password/SysUserPasswordService.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_sync/Sm4Util.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_sync/brd/SspServerBrdUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_sync/listen/SspServerListenController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_sync/listen/SspServerListenUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/SP.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin/SpAdmin.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin/SpAdminController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin/SpAdminMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin/SpAdminMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin/SpAdminService.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin/SpAdminUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin4acc/SpAccAdminController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin4acc/SpAccAdminService.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin4login/SpAdminLogin.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin4login/SpAdminLoginController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin4login/SpAdminLoginMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin4login/SpAdminLoginMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin4password/SpAdminPasswordController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/admin4password/SpAdminPasswordService.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/apilog/SpApilog.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/apilog/SpApilogControlle.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/apilog/SpApilogInsertTemplate.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/apilog/SpApilogMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/apilog/SpApilogMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/apilog/SpApilogUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/config/SpConfig.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/config/SpConfigController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/config/SpConfigMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/config/SpConfigMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/config/SpConfigUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/menu/SpMenu.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/menu/SpMenuController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/menu/SpMenuMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/menu/SpMenuMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/menu/SpMenuUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/public4mapper/JdbcLambdaBegin.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/public4mapper/JdbcLambdaBeginRet.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/public4mapper/JdbcLambdaRollback.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/public4mapper/JdbcLambdaRollbackRet.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/public4mapper/PublicMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/public4mapper/PublicMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/public4mapper/PublicService.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/redis4console/RedisConsoleController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/redis4console/RedisConsoleUtil$1.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/redis4console/RedisConsoleUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/role/SpRole.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/role/SpRoleController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/role/SpRoleMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/role/SpRoleMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/role/SpRoleUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/role4permission/SpRolePermissionController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/role4permission/SpRolePermissionMapper.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/role4permission/SpRolePermissionMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/role4permission/SpRolePermissionService.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/test/TestController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/uploadfile/UploadConfig.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/uploadfile/UploadController.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/uploadfile/UploadUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/utils/LogUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/utils/Sugar.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/utils/Ttime.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/utils/VcUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/utils/cache/RedisUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/utils/sg/AjaxError.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/utils/sg/AjaxJson.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/utils/sg/IpCheckUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/utils/sg/IpUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/utils/sg/NbUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/utils/sg/WebNbUtil.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/utils/so/SoMap.class" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/logback.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/banner.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/logo.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/sa-res/jquery.min.js" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/sa-res/layer/layer.js" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/sa-res/layer/mobile/layer.js" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/sa-res/layer/mobile/need/layer.css" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/sa-res/layer/theme/default/icon-ext.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/sa-res/layer/theme/default/icon.png" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/sa-res/layer/theme/default/layer.css" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/sa-res/layer/theme/default/loading-0.gif" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/sa-res/layer/theme/default/loading-1.gif" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/sa-res/layer/theme/default/loading-2.gif" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/sa-res/login.css" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/sa-res/login.js" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/static/用户信息.xlsx" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/templates/login.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/pj/project/sso/SsoServerController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/pj/project/sso/SsoServerController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/pj/project/sys_client/SysClientController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/pj/project/sys_client/SysClientController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/pj/project/sys_user_acc/SysUserAccController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/pj/project/sys_user_acc/SysUserAccController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/pj/project4sp/config/SpConfigController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/pj/project4sp/config/SpConfigController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/application.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sso/SsoServerController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/pj/project/sso/SsoServerController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_client/SysClientController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/pj/project/sys_client/SysClientController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_acc/SysUserAccController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/pj/project/sys_user_acc/SysUserAccController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/pj/project4sp/config/SpConfigController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/pj/project4sp/config/SpConfigController.class" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -318,7 +179,7 @@
       <workItem from="1693013189580" duration="18142000" />
       <workItem from="1693184212405" duration="1406000" />
       <workItem from="1693185743697" duration="31304000" />
-      <workItem from="1693357631965" duration="5142000" />
+      <workItem from="1693357631965" duration="22917000" />
     </task>
     <task id="LOCAL-00001" summary="项目提交">
       <created>1692754671570</created>
@@ -474,7 +335,14 @@
       <option name="project" value="LOCAL" />
       <updated>1693362758981</updated>
     </task>
-    <option name="localTasksCounter" value="23" />
+    <task id="LOCAL-00023" summary="重新打包">
+      <created>1693364742427</created>
+      <option name="number" value="00023" />
+      <option name="presentableId" value="LOCAL-00023" />
+      <option name="project" value="LOCAL" />
+      <updated>1693364742427</updated>
+    </task>
+    <option name="localTasksCounter" value="24" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -492,7 +360,8 @@
     <MESSAGE value="配置项增加背景图and标题" />
     <MESSAGE value="把登录页面分离出去" />
     <MESSAGE value="主应用限制唯一性" />
-    <option name="LAST_COMMIT_MESSAGE" value="主应用限制唯一性" />
+    <MESSAGE value="重新打包" />
+    <option name="LAST_COMMIT_MESSAGE" value="重新打包" />
   </component>
   <component name="WindowStateProjectService">
     <state x="2685" y="204" key="#com.intellij.ide.util.MemberChooser" timestamp="1692946298826">
@@ -503,18 +372,18 @@
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
     <state x="2610" y="267" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1692090140484" />
-    <state x="2635" y="222" key="#xdebugger.evaluate" timestamp="1693203328017">
+    <state x="2635" y="222" key="#xdebugger.evaluate" timestamp="1693376744606">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state x="2635" y="222" key="#xdebugger.evaluate/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693203328017" />
-    <state x="2380" y="112" key="CommitChangelistDialog2" timestamp="1693362752056">
+    <state x="2635" y="222" key="#xdebugger.evaluate/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693376744606" />
+    <state x="2380" y="112" key="CommitChangelistDialog2" timestamp="1693364735870">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state x="2380" y="112" key="CommitChangelistDialog2/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693362752056" />
-    <state width="883" height="466" key="DebuggerActiveHint" timestamp="1693271427265">
+    <state x="2380" y="112" key="CommitChangelistDialog2/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693364735870" />
+    <state width="883" height="466" key="DebuggerActiveHint" timestamp="1693384339114">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state width="883" height="466" key="DebuggerActiveHint/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693271427265" />
+    <state width="883" height="466" key="DebuggerActiveHint/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693384339114" />
     <state x="2012" y="92" width="1736" height="856" key="DiffContextDialog" timestamp="1693013173565">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
@@ -523,54 +392,54 @@
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
     <state x="2660" y="275" key="FileChooserDialogImpl/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1692754343375" />
-    <state width="1877" height="277" key="GridCell.Tab.0.bottom" timestamp="1693364625053">
+    <state width="1877" height="277" key="GridCell.Tab.0.bottom" timestamp="1693388018751">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state width="1877" height="277" key="GridCell.Tab.0.bottom/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693364625053" />
-    <state width="1877" height="277" key="GridCell.Tab.0.center" timestamp="1693364625053">
+    <state width="1877" height="277" key="GridCell.Tab.0.bottom/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693388018751" />
+    <state width="1877" height="277" key="GridCell.Tab.0.center" timestamp="1693388018751">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state width="1877" height="277" key="GridCell.Tab.0.center/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693364625053" />
-    <state width="1877" height="277" key="GridCell.Tab.0.left" timestamp="1693364625053">
+    <state width="1877" height="277" key="GridCell.Tab.0.center/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693388018751" />
+    <state width="1877" height="277" key="GridCell.Tab.0.left" timestamp="1693388018751">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state width="1877" height="277" key="GridCell.Tab.0.left/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693364625053" />
-    <state width="1877" height="277" key="GridCell.Tab.0.right" timestamp="1693364625053">
+    <state width="1877" height="277" key="GridCell.Tab.0.left/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693388018751" />
+    <state width="1877" height="277" key="GridCell.Tab.0.right" timestamp="1693388018751">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state width="1877" height="277" key="GridCell.Tab.0.right/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693364625053" />
-    <state width="1877" height="388" key="GridCell.Tab.1.bottom" timestamp="1693362888153">
+    <state width="1877" height="277" key="GridCell.Tab.0.right/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693388018751" />
+    <state width="1877" height="263" key="GridCell.Tab.1.bottom" timestamp="1693387981238">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state width="1877" height="388" key="GridCell.Tab.1.bottom/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693362888153" />
-    <state width="1877" height="388" key="GridCell.Tab.1.center" timestamp="1693362888152">
+    <state width="1877" height="263" key="GridCell.Tab.1.bottom/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693387981238" />
+    <state width="1877" height="263" key="GridCell.Tab.1.center" timestamp="1693387981238">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state width="1877" height="388" key="GridCell.Tab.1.center/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693362888152" />
-    <state width="1877" height="388" key="GridCell.Tab.1.left" timestamp="1693362888152">
+    <state width="1877" height="263" key="GridCell.Tab.1.center/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693387981238" />
+    <state width="1877" height="263" key="GridCell.Tab.1.left" timestamp="1693387981238">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state width="1877" height="388" key="GridCell.Tab.1.left/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693362888152" />
-    <state width="1877" height="388" key="GridCell.Tab.1.right" timestamp="1693362888153">
+    <state width="1877" height="263" key="GridCell.Tab.1.left/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693387981238" />
+    <state width="1877" height="263" key="GridCell.Tab.1.right" timestamp="1693387981238">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state width="1877" height="388" key="GridCell.Tab.1.right/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693362888153" />
-    <state width="1877" height="388" key="GridCell.Tab.2.bottom" timestamp="1693362888153">
+    <state width="1877" height="263" key="GridCell.Tab.1.right/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693387981238" />
+    <state width="1877" height="263" key="GridCell.Tab.2.bottom" timestamp="1693387981239">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state width="1877" height="388" key="GridCell.Tab.2.bottom/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693362888153" />
-    <state width="1877" height="388" key="GridCell.Tab.2.center" timestamp="1693362888153">
+    <state width="1877" height="263" key="GridCell.Tab.2.bottom/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693387981239" />
+    <state width="1877" height="263" key="GridCell.Tab.2.center" timestamp="1693387981239">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state width="1877" height="388" key="GridCell.Tab.2.center/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693362888153" />
-    <state width="1877" height="388" key="GridCell.Tab.2.left" timestamp="1693362888153">
+    <state width="1877" height="263" key="GridCell.Tab.2.center/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693387981239" />
+    <state width="1877" height="263" key="GridCell.Tab.2.left" timestamp="1693387981239">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state width="1877" height="388" key="GridCell.Tab.2.left/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693362888153" />
-    <state width="1877" height="388" key="GridCell.Tab.2.right" timestamp="1693362888153">
+    <state width="1877" height="263" key="GridCell.Tab.2.left/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693387981239" />
+    <state width="1877" height="263" key="GridCell.Tab.2.right" timestamp="1693387981239">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state width="1877" height="388" key="GridCell.Tab.2.right/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693362888153" />
+    <state width="1877" height="263" key="GridCell.Tab.2.right/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693387981239" />
     <state x="2636" y="231" key="RollbackChangesDialog" timestamp="1693013074093">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
@@ -579,18 +448,18 @@
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
     <state x="2381" y="162" key="SettingsEditor/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1691549723160" />
-    <state x="2472" y="253" key="Vcs.Push.Dialog.v2" timestamp="1693362767194">
+    <state x="2472" y="253" key="Vcs.Push.Dialog.v2" timestamp="1693364748808">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state x="2472" y="253" key="Vcs.Push.Dialog.v2/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693362767194" />
+    <state x="2472" y="253" key="Vcs.Push.Dialog.v2/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693364748808" />
     <state x="2560" y="344" key="com.intellij.ide.util.TipDialog" timestamp="1693357698933">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
     <state x="2560" y="344" key="com.intellij.ide.util.TipDialog/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693357698933" />
-    <state x="2135" y="81" width="1115" height="669" key="find.popup" timestamp="1693302834597">
+    <state x="2135" y="81" width="1115" height="669" key="find.popup" timestamp="1693385575279">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>
-    <state x="2135" y="81" width="1115" height="669" key="find.popup/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693302834597" />
+    <state x="2135" y="81" width="1115" height="669" key="find.popup/1920.0.1920.1040/0.0.1920.1040@1920.0.1920.1040" timestamp="1693385575279" />
     <state x="2581" y="147" key="refactoring.ChangeSignatureDialog" timestamp="1692685608267">
       <screen x="1920" y="0" width="1920" height="1040" />
     </state>

+ 91 - 7
src/main/java/com/pj/project/sso/SsoServerController.java

@@ -2,15 +2,23 @@ package com.pj.project.sso;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.sso.SaSsoTemplate;
+import cn.dev33.satoken.util.SaResult;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.pj.current.config.SystemObject;
 import com.pj.project.sys_client.SysClient;
 import com.pj.project.sys_client.SysClientMapper;
 import com.pj.project.sys_client_visit.SysClientVisit;
 import com.pj.project.sys_client_visit.SysClientVisitMapper;
 import com.pj.project.sys_user.SysUser;
 import com.pj.project.sys_user.SysUserMapper;
+import com.pj.project.sys_user_password.SysUserPasswordService;
+import com.pj.project.sys_user_sync.listen.SspServerListenUtil;
+import com.pj.project4sp.config.SpConfigUtil;
 import com.pj.utils.so.SoMap;
 import io.netty.util.internal.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
@@ -31,6 +39,7 @@ import cn.dev33.satoken.sso.SaSsoProcessor;
 import cn.dev33.satoken.sso.SaSsoUtil;
 import cn.dev33.satoken.sso.exception.SaSsoException;
 
+import java.util.LinkedList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -60,6 +69,9 @@ public class SsoServerController {
     @Autowired
     private SysClientVisitMapper sysClientVisitMapper;
 
+    @Autowired
+    private SysUserPasswordService sysUserPasswordService;
+
     // SSO-Server端:处理所有SSO相关请求 
     @RequestMapping("/sso/*")
     public Object ssoRequest() {
@@ -151,18 +163,14 @@ public class SsoServerController {
         });
     }
 
-
     // 返回所有在线用户
     @RequestMapping("/sso/getList")
     public AjaxJson getList(@RequestParam(defaultValue = "") String keyword) {
         SoMap so = SoMap.getRequestSoMap();
-
         // 可以搜索到多少条数据
         long count = StpUserUtil.searchSessionId(keyword, 0, -1, false).size();
-
         // 搜出来的所有SessionId
         List<String> sessionIdList = StpUserUtil.searchSessionId(keyword, so.getStartIndex(), so.getKeyPageSize(), false);
-
         // 根据其 Session 获取详细数据
         List<SoMap> infoList = sessionIdList
                 .stream()
@@ -173,17 +181,14 @@ public class SsoServerController {
                             .set("tokenSignList", session.getTokenSignList())
                             .set("createTime", session.getCreateTime())
                             .set("timeout", session.getTimeout());
-
                     SysUser user = session.getModel("user", SysUser.class);
                     if (user != null) {
                         soMap.set("userId", user.getId())
                                 .set("username", user.getUsername())
                                 .set("avatar", user.getAvatar());
                     }
-
                     return soMap;
                 }).collect(Collectors.toList());
-
         // 返回
         return AjaxJson.getPageData(count, infoList);
     }
@@ -227,5 +232,84 @@ public class SsoServerController {
         }
     }
 
+    // 获取userinfo  new
+    //认证中心登录页分离出来所新写的   退出登录接口
+    @RequestMapping("/sso/userInfo")
+    public Object userInfo(@RequestBody String jsonBody) {
+        JSONObject jsonObject = JSON.parseObject(jsonBody);
+        String loginId = (String) jsonObject.get("loginId");
+        // 返回信息
+        SysUser user = (SysUser) SysUserAccUtil.getUserById(loginId);
+        if (user == null) return AjaxJson.getError("查询失败");
+        if (!StringUtil.isNullOrEmpty(user.getAvatar())) {
+            user.setAvatar(getDoMain() + user.getAvatar());
+        }
+        return AjaxJson.getSuccessData(user);
+    }
+
+    //退出登录
+    //认证中心登录页分离出来所新写的   退出登录接口
+    @RequestMapping("/sso/logout")
+    public AjaxJson logout(@RequestBody String jsonBody) {
+        JSONObject jsonObject = JSON.parseObject(jsonBody);
+        String loginId = (String) jsonObject.get("loginId");
+        if (StringUtil.isNullOrEmpty(loginId)) return AjaxJson.getError("loginId不能为空");
+        saSsoTemplate.ssoLogout(loginId);
+        return AjaxJson.getSuccess("退出登录成功");
+    }
+
+    /**
+     * 查集合-该用户关联的子应用列表
+     */
+    @RequestMapping("/sso/getClientList")
+    public AjaxJson getClientList(@RequestBody String jsonBody) {
+        JSONObject jsonObject = JSON.parseObject(jsonBody);
+        String loginId = (String) jsonObject.get("loginId");
+        if (StringUtil.isNullOrEmpty(loginId)) return AjaxJson.getError("用户id不能为空");
+        SysUser user = sysUserMapper.getById(loginId);
+        if (user == null) return AjaxJson.getError("用户不存在");
+        //查出关联应用
+        List<SysClient> list = new LinkedList<>();
+        List<SysClientVisit> clientVisitList = sysClientVisitMapper.getListByUserId(loginId);
+        if (clientVisitList != null && clientVisitList.size() > 0) {
+            for (SysClientVisit visit : clientVisitList) {
+                if (visit == null) continue;
+                SysClient client = sysClientMapper.getById(visit.getClientId());
+//                if (client == null || client.getIsMain() == 1) continue;
+                if (client == null) continue;
+                list.add(client);
+            }
+        }
+        if (list != null && list.size() > 0) {
+            for (SysClient sysClient : list) {
+                if (!StringUtil.isNullOrEmpty(sysClient.getLogo())) {
+                    sysClient.setLogo(getDoMain() + sysClient.getLogo());
+                }
+            }
+        }
+        AjaxJson ajaxJson = new AjaxJson();
+        ajaxJson.setCode(200);
+        ajaxJson.setData(list);
+        return ajaxJson;
+    }
+
+    //修改密码
+    //认证中心登录页分离出来所新写的   修改密码接口
+    @RequestMapping("/sso/updatePW")
+    public AjaxJson updatePW(@RequestBody String jsonBody) {
+        JSONObject jsonObject = JSON.parseObject(jsonBody);
+        String loginId = (String) jsonObject.get("loginId");
+        String password = (String) jsonObject.get("password");
+        sysUserPasswordService.updatePassword(loginId, password);
+        return AjaxJson.getSuccess();
+    }
+
+
+    /**
+     * 返回本服务器域名信息
+     */
+    static String getDoMain() {
+        return SystemObject.config.getDomain();
+    }
 
 }

+ 10 - 10
src/main/java/com/pj/project/sys_client/SysClientController.java

@@ -55,10 +55,10 @@ public class SysClientController {
                 s.setLogo(s.getLogo().replaceAll(getDoMain(), ""));
             }
             //判断主应用的唯一性
-            if (s.getIsMain() == 1) {
-                SysClient isMain = sysClientMapper.getIsMain();
-                if (isMain != null) return AjaxJson.getError("已经存在主应用,不能再次添加");
-            }
+//            if (s.getIsMain() == 1) {
+//                SysClient isMain = sysClientMapper.getIsMain();
+//                if (isMain != null) return AjaxJson.getError("已经存在主应用,不能再次添加");
+//            }
 
             sysClientMapper.add(s);
             s = sysClientMapper.getById(SP.publicMapper.getPrimarykey());
@@ -108,12 +108,12 @@ public class SysClientController {
                 s.setLogo(s.getLogo().replaceAll(getDoMain(), ""));
             }
             //判断主应用的唯一性
-            if (s.getIsMain() == 1) {
-                SysClient isMain = sysClientMapper.getIsMain();
-                if (isMain != null && !s.getId().equals(isMain.getId())) {
-                    return AjaxJson.getError("已经存在主应用,不能再次添加");
-                }
-            }
+//            if (s.getIsMain() == 1) {
+//                SysClient isMain = sysClientMapper.getIsMain();
+//                if (isMain != null && !s.getId().equals(isMain.getId())) {
+//                    return AjaxJson.getError("已经存在主应用,不能再次添加");
+//                }
+//            }
 
             int line = sysClientMapper.update(s);
             return AjaxJson.getByLine(line);

+ 57 - 5
src/main/java/com/pj/project/sys_user_acc/SysUserAccController.java

@@ -1,8 +1,19 @@
 package com.pj.project.sys_user_acc;
 
+import cn.dev33.satoken.spring.SpringMVCUtil;
+import cn.dev33.satoken.util.SaFoxUtil;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.pj.project.sys_client.SysClientUtil;
+import com.pj.project.sys_login_log.SysLoginLog;
+import com.pj.project.sys_login_log.SysLoginLogUtil;
+import com.pj.utils.sg.IpUtil;
+import eu.bitwalker.useragentutils.UserAgent;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.pj.current.satoken.StpUserUtil;
@@ -15,6 +26,7 @@ import com.pj.utils.sg.AjaxError;
 import com.pj.utils.sg.AjaxJson;
 import com.pj.utils.sg.NbUtil;
 
+import javax.servlet.http.HttpServletRequest;
 import java.net.URLDecoder;
 
 /**
@@ -91,22 +103,39 @@ public class SysUserAccController {
      */
     @RequestMapping("doLogin")
     AjaxJson doLogin(String name, String pwd) {
-
-        // 校验参数 
+        // 校验参数
         if (NbUtil.hasNull(name, pwd)) {
-            return AjaxJson.getError("请输入");
+            return AjaxJson.getError("请输入账号/密码");
         }
-
         //对加密密码进行解密
         pwd = BtoAAtoB.atob(pwd);
+        // 获取相应用户
+        SysUserAcc userAcc = sysUserAccService.doLogin(name, pwd);
+
+        // 返回信息
+        return successLoginInfo(userAcc.getId());
+    }
 
+    //认证中心登录页分离出来所新写的   登录接口
+    @RequestMapping("login")
+    AjaxJson login(@RequestBody String jsonBody) {
+        JSONObject jsonObject = JSON.parseObject(jsonBody);
+        String name = (String) jsonObject.get("name");
+        String pwd = (String) jsonObject.get("pwd");
+        // 校验参数
+        if (NbUtil.hasNull(name, pwd)) {
+            return AjaxJson.getError("请输入账号/密码");
+        }
+        //对加密密码进行解密
+        pwd = BtoAAtoB.atob(pwd);
         // 获取相应用户
         SysUserAcc userAcc = sysUserAccService.doLogin(name, pwd);
 
-        // 返回信息 
+        // 返回信息
         return successLoginInfo(userAcc.getId());
     }
 
+
     /**
      * 注销登录
      */
@@ -126,6 +155,29 @@ public class SysUserAccController {
         Object user = SysUserAccUtil.getUserById(userId);
         StpUserUtil.getSession().set("user", user);
 
+        // 更新User表记录
+        HttpServletRequest request = SpringMVCUtil.getRequest();
+        UserAgent ua = UserAgent.parseUserAgentString(request.getHeader("user-agent"));
+        String loginIp = IpUtil.getIP(request);
+
+        int line = sysUserAccMapper.successLogin(userId, loginIp);
+        AjaxError.notLine(line, "登录记录更新失败");
+
+        // 更新登录日志表记录
+        SysLoginLog s = new SysLoginLog();    // 声明对象
+        s.setUserId(userId);            // 用户id
+        s.setAccToken(StpUserUtil.getTokenInfo().getTokenValue());        // 本次登录Token
+        s.setLoginIp(loginIp);            // 登陆IP
+        s.setLoginAddress(IpUtil.getAddres(loginIp));    // 登陆地
+        s.setLoginDevice(ua.getBrowser().getName());        // 设备标识
+        s.setLoginSystem(ua.getOperatingSystem().getName());    // 系统标识
+        s.setClientDomain("redirect");    // Client端Url
+//        s.setClientId(SysClientUtil.getClientIdByUrl(redirect));	// 所属应用id
+        SysLoginLogUtil.sysLoginLogMapper.add(s);
+
+        // 更新Session中对象
+        StpUserUtil.getSessionByLoginId(userId).set("user", SysUserAccUtil.getUserById(userId));
+
         // 返回账号数据 
         return AjaxJson.getSuccess()
                 .set("userId", userId)     // 用户id

+ 11 - 0
src/main/java/com/pj/project4sp/config/SpConfigController.java

@@ -239,6 +239,17 @@ public class SpConfigController {
     }
 
     /**
+     * 获取登录页面路径getQuitUrl
+     */
+    @RequestMapping("getQuitUrl")
+    public AjaxJson getQuitUrl() {
+        SpConfig title = spConfigMapper.getByName("title");
+        if (title == null || StringUtil.isNullOrEmpty(title.getValue())) return AjaxJson.getError("路径不存在");
+        return AjaxJson.getSuccessData(title.getValue());
+    }
+
+
+    /**
      * 返回本服务器域名信息
      */
     static String getDoMain() {

BIN
target/classes/com/pj/project/sso/SsoServerController.class


BIN
target/classes/com/pj/project/sys_client/SysClientController.class


BIN
target/classes/com/pj/project/sys_user_acc/SysUserAccController.class


BIN
target/classes/com/pj/project4sp/config/SpConfigController.class


BIN
xmnk-sso-1.0.jar