Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Pangea-Agent
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Gavin-Group
Pangea-Agent
Commits
b085dc80
Commit
b085dc80
authored
Dec 24, 2025
by
youxiaoji
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* [用户token的获取方式调整为从数据库获取]
parent
5fae7eda
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
76 additions
and
7 deletions
+76
-7
DefaultReactExecutor.java
...java/pangea/hiagent/agent/react/DefaultReactExecutor.java
+7
-1
UserToken.java
backend/src/main/java/pangea/hiagent/model/UserToken.java
+26
-0
VisitorAppointmentTool.java
...java/pangea/hiagent/tool/impl/VisitorAppointmentTool.java
+7
-6
UserTokenRepository.java
...va/pangea/hiagent/web/repository/UserTokenRepository.java
+19
-0
UserTokenService.java
...ain/java/pangea/hiagent/web/service/UserTokenService.java
+17
-0
No files found.
backend/src/main/java/pangea/hiagent/agent/react/DefaultReactExecutor.java
View file @
b085dc80
...
@@ -9,10 +9,12 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -9,10 +9,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.context.annotation.Lazy
;
import
pangea.hiagent.agent.sse.UserSseService
;
import
pangea.hiagent.agent.sse.UserSseService
;
import
pangea.hiagent.model.UserToken
;
import
pangea.hiagent.tool.impl.HisenseTripTool
;
import
pangea.hiagent.tool.impl.HisenseTripTool
;
import
pangea.hiagent.tool.impl.VisitorAppointmentTool
;
import
pangea.hiagent.tool.impl.VisitorAppointmentTool
;
import
pangea.hiagent.web.service.AgentService
;
import
pangea.hiagent.web.service.AgentService
;
import
pangea.hiagent.web.service.InfoCollectorService
;
import
pangea.hiagent.web.service.InfoCollectorService
;
import
pangea.hiagent.web.service.UserTokenService
;
import
pangea.hiagent.workpanel.IWorkPanelDataCollector
;
import
pangea.hiagent.workpanel.IWorkPanelDataCollector
;
import
pangea.hiagent.agent.service.ErrorHandlerService
;
import
pangea.hiagent.agent.service.ErrorHandlerService
;
import
pangea.hiagent.agent.service.TokenConsumerWithCompletion
;
import
pangea.hiagent.agent.service.TokenConsumerWithCompletion
;
...
@@ -65,6 +67,9 @@ public class DefaultReactExecutor implements ReactExecutor {
...
@@ -65,6 +67,9 @@ public class DefaultReactExecutor implements ReactExecutor {
@Autowired
@Autowired
private
UserSseService
userSseService
;
private
UserSseService
userSseService
;
@Autowired
private
UserTokenService
userTokenService
;
public
DefaultReactExecutor
(
AgentToolManager
agentToolManager
)
{
public
DefaultReactExecutor
(
AgentToolManager
agentToolManager
)
{
this
.
agentToolManager
=
agentToolManager
;
this
.
agentToolManager
=
agentToolManager
;
}
}
...
@@ -235,7 +240,8 @@ public class DefaultReactExecutor implements ReactExecutor {
...
@@ -235,7 +240,8 @@ public class DefaultReactExecutor implements ReactExecutor {
// 构建Prompt,包含历史对话记录
// 构建Prompt,包含历史对话记录
Prompt
prompt
=
buildPromptWithHistory
(
DEFAULT_SYSTEM_PROMPT
,
userInput
,
agent
);
Prompt
prompt
=
buildPromptWithHistory
(
DEFAULT_SYSTEM_PROMPT
,
userInput
,
agent
);
VisitorAppointmentTool
hisenseTripTool
=
new
VisitorAppointmentTool
(
agentService
,
infoCollectorService
,
userSseService
);
UserToken
userToken
=
userTokenService
.
getUserToken
(
"admin"
,
"pangea"
);
VisitorAppointmentTool
hisenseTripTool
=
new
VisitorAppointmentTool
(
userToken
,
agentService
,
infoCollectorService
,
userSseService
);
hisenseTripTool
.
initialize
();
hisenseTripTool
.
initialize
();
// 订阅流式响应
// 订阅流式响应
chatClient
.
prompt
(
prompt
)
chatClient
.
prompt
(
prompt
)
...
...
backend/src/main/java/pangea/hiagent/model/UserToken.java
0 → 100644
View file @
b085dc80
package
pangea
.
hiagent
.
model
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.*
;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"sys_user_token"
)
public
class
UserToken
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 用户名
*/
private
String
username
;
private
String
userId
;
private
String
tokenType
;
private
String
tokenValue
;
}
backend/src/main/java/pangea/hiagent/tool/impl/VisitorAppointmentTool.java
View file @
b085dc80
...
@@ -19,6 +19,7 @@ import pangea.hiagent.common.utils.Contants;
...
@@ -19,6 +19,7 @@ import pangea.hiagent.common.utils.Contants;
import
pangea.hiagent.common.utils.HybridUniqueLongGenerator
;
import
pangea.hiagent.common.utils.HybridUniqueLongGenerator
;
import
pangea.hiagent.common.utils.InputCodeGenerator
;
import
pangea.hiagent.common.utils.InputCodeGenerator
;
import
pangea.hiagent.model.Agent
;
import
pangea.hiagent.model.Agent
;
import
pangea.hiagent.model.UserToken
;
import
pangea.hiagent.web.service.AgentService
;
import
pangea.hiagent.web.service.AgentService
;
import
pangea.hiagent.web.service.InfoCollectorService
;
import
pangea.hiagent.web.service.InfoCollectorService
;
...
@@ -49,7 +50,6 @@ public class VisitorAppointmentTool {
...
@@ -49,7 +50,6 @@ public class VisitorAppointmentTool {
// 共享的浏览器上下文,用于保持登录状态
// 共享的浏览器上下文,用于保持登录状态
private
BrowserContext
sharedContext
;
private
BrowserContext
sharedContext
;
// 上次登录时间
// 上次登录时间
private
long
lastLoginTime
=
0
;
private
long
lastLoginTime
=
0
;
...
@@ -57,15 +57,16 @@ public class VisitorAppointmentTool {
...
@@ -57,15 +57,16 @@ public class VisitorAppointmentTool {
private
InfoCollectorService
infoCollectorService
;
private
InfoCollectorService
infoCollectorService
;
private
UserSseService
userSseService
;
private
UserSseService
userSseService
;
// 登录状态有效期(毫秒),设置为30分钟
// 登录状态有效期(毫秒),设置为30分钟
private
static
final
long
LOGIN_VALIDITY_PERIOD
=
30
*
60
*
1000
;
private
static
final
long
LOGIN_VALIDITY_PERIOD
=
30
*
60
*
1000
;
public
VisitorAppointmentTool
(
AgentService
agentService
,
InfoCollectorService
infoCollectorService
,
UserSseService
userSseService
)
{
public
VisitorAppointmentTool
(
UserToken
userToken
,
AgentService
agentService
,
InfoCollectorService
infoCollectorService
,
UserSseService
userSseService
)
{
this
.
agentService
=
agentService
;
this
.
agentService
=
agentService
;
this
.
infoCollectorService
=
infoCollectorService
;
this
.
infoCollectorService
=
infoCollectorService
;
this
.
ssoToken
=
"d10bc61aa4e00dcc6f08de64ca42012814fdbcee9b88aa977f7fb07d3a4018f4"
;
this
.
ssoToken
=
"d10bc61aa4e00dcc6f08de64ca42012814fdbcee9b88aa977f7fb07d3a4018f4"
;
this
.
ldapToken
=
"AAECAzY5NDRBNTQ1Njk0NTRFMDV5b3V4aWFvamlaLv+jUGNEEORN24GLIC3OlqcCdw=="
;
this
.
ldapToken
=
"AAECAzY5NDRBNTQ1Njk0NTRFMDV5b3V4aWFvamlaLv+jUGNEEORN24GLIC3OlqcCdw=="
;
this
.
iparkToken
=
"208a55e4-59bc-400b-971f-a4ed3a5379ca"
;
this
.
iparkToken
=
userToken
.
getTokenValue
()
;
this
.
userSseService
=
userSseService
;
this
.
userSseService
=
userSseService
;
}
}
...
@@ -87,7 +88,7 @@ public class VisitorAppointmentTool {
...
@@ -87,7 +88,7 @@ public class VisitorAppointmentTool {
ldapTokenCookie
.
setDomain
(
".hisense.com"
);
ldapTokenCookie
.
setDomain
(
".hisense.com"
);
ldapTokenCookie
.
setPath
(
"/"
);
ldapTokenCookie
.
setPath
(
"/"
);
Cookie
tripCookie
=
new
Cookie
(
"jwtToken"
,
iparkToken
);
Cookie
tripCookie
=
new
Cookie
(
"jwtToken"
,
iparkToken
);
tripCookie
.
setDomain
(
"
trip
.hisense.com"
);
tripCookie
.
setDomain
(
"
vrms-proxy
.hisense.com"
);
tripCookie
.
setPath
(
"/"
);
tripCookie
.
setPath
(
"/"
);
// String userName= SecurityContextHolder.getContext().getAuthentication().getName();
// String userName= SecurityContextHolder.getContext().getAuthentication().getName();
...
@@ -127,7 +128,7 @@ public class VisitorAppointmentTool {
...
@@ -127,7 +128,7 @@ public class VisitorAppointmentTool {
}
}
}
}
@Tool
(
description
=
"存储用户提交的访客预约申请信息"
,
returnDirect
=
true
)
@Tool
(
description
=
"存储用户提交的访客预约申请信息"
)
public
String
applyInfoSave
(
@ToolParam
(
required
=
true
)
JSONObject
infos
)
{
public
String
applyInfoSave
(
@ToolParam
(
required
=
true
)
JSONObject
infos
)
{
log
.
info
(
"applyInfoSave(infos={})"
,
infos
);
log
.
info
(
"applyInfoSave(infos={})"
,
infos
);
infos
.
keySet
().
forEach
(
key
->
{
infos
.
keySet
().
forEach
(
key
->
{
...
@@ -171,7 +172,7 @@ public class VisitorAppointmentTool {
...
@@ -171,7 +172,7 @@ public class VisitorAppointmentTool {
log
.
info
(
"正在访问业务系统页面: {}"
,
destUrl
);
log
.
info
(
"正在访问业务系统页面: {}"
,
destUrl
);
String
faviconUrl
=
"https://vrms-proxy.hisense.com/favicon.ico"
;
String
faviconUrl
=
"https://vrms-proxy.hisense.com/favicon.ico"
;
page
.
navigate
(
faviconUrl
);
page
.
navigate
(
faviconUrl
);
page
.
evaluate
(
"() => sessionStorage.setItem('Access-Token', '
208a55e4-59bc-400b-971f-a4ed3a5379ca
')"
);
page
.
evaluate
(
"() => sessionStorage.setItem('Access-Token', '
"
+
iparkToken
+
"
')"
);
page
.
navigate
(
destUrl
,
new
Page
.
NavigateOptions
().
setWaitUntil
(
WaitUntilState
.
NETWORKIDLE
));
page
.
navigate
(
destUrl
,
new
Page
.
NavigateOptions
().
setWaitUntil
(
WaitUntilState
.
NETWORKIDLE
));
// 检查是否重定向到了SSO登录页面
// 检查是否重定向到了SSO登录页面
String
currentUrl
=
page
.
url
();
String
currentUrl
=
page
.
url
();
...
...
backend/src/main/java/pangea/hiagent/web/repository/UserTokenRepository.java
0 → 100644
View file @
b085dc80
package
pangea
.
hiagent
.
web
.
repository
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Select
;
import
pangea.hiagent.model.Tool
;
import
pangea.hiagent.model.User
;
import
pangea.hiagent.model.UserToken
;
import
java.util.List
;
@Mapper
public
interface
UserTokenRepository
extends
BaseMapper
<
User
>
{
@Select
(
"SELECT * FROM sys_user_token WHERE user_name = #{userName} AND token_type=#{tokenType} ORDER BY created_at DESC"
)
UserToken
getTokenByUserNameAndTokenType
(
String
userName
,
String
tokenType
);
}
backend/src/main/java/pangea/hiagent/web/service/UserTokenService.java
0 → 100644
View file @
b085dc80
package
pangea
.
hiagent
.
web
.
service
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
pangea.hiagent.model.UserToken
;
import
pangea.hiagent.web.repository.UserTokenRepository
;
@Service
public
class
UserTokenService
{
@Autowired
private
UserTokenRepository
userTokenRepository
;
public
UserToken
getUserToken
(
String
userName
,
String
tokenType
)
{
return
userTokenRepository
.
getTokenByUserNameAndTokenType
(
userName
,
tokenType
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment