Skip to content

Commit 69a6b3d

Browse files
committed
feat: 增加 token 续期
1 parent cfe4791 commit 69a6b3d

10 files changed

Lines changed: 419 additions & 343 deletions

File tree

cmd/impl/fake.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ type FakeServer struct {
2727
}
2828

2929
func (f *FakeServer) GetDBTokenAuthInfo(ctx context.Context,
30-
req *pb.DBTokenRequest) (*pb.DBTokenResponse, error) {
30+
req *pb.TokenRequest) (*pb.DBTokenResponse, error) {
3131
logger.Infof("Get DB Token AuthInfo req: %+v", req)
3232
var status pb.Status
3333
if f.testData.ID != req.Token {
@@ -36,7 +36,7 @@ func (f *FakeServer) GetDBTokenAuthInfo(ctx context.Context,
3636
}
3737
status.Ok = true
3838
data := f.testData
39-
dbTokenInfo := pb.DBTokenAuthInfo{
39+
dbTokenInfo := pb.TokenAuthInfo{
4040
KeyId: data.ID,
4141
SecreteId: data.Secrete,
4242
Application: ConvertToProtobufApplication(data.Application),

cmd/impl/jms.go

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ type JMServer struct {
3636
forwardStore *common.ForwardCache
3737
}
3838

39-
func (j *JMServer) GetDBTokenAuthInfo(ctx context.Context, req *pb.DBTokenRequest) (*pb.DBTokenResponse, error) {
39+
func (j *JMServer) GetDBTokenAuthInfo(ctx context.Context, req *pb.TokenRequest) (*pb.DBTokenResponse, error) {
4040
var status pb.Status
4141
tokenResp, err := j.apiClient.GetConnectTokenAuth(req.Token)
4242
if err != nil {
@@ -53,7 +53,7 @@ func (j *JMServer) GetDBTokenAuthInfo(ctx context.Context, req *pb.DBTokenReques
5353
return &pb.DBTokenResponse{Status: &status}, nil
5454
}
5555
setting := j.uploader.GetTerminalSetting()
56-
dbTokenInfo := pb.DBTokenAuthInfo{
56+
dbTokenInfo := pb.TokenAuthInfo{
5757
KeyId: tokenAuthInfo.Id,
5858
SecreteId: tokenAuthInfo.Secret,
5959
Application: ConvertToProtobufApplication(tokenAuthInfo.Application),
@@ -70,6 +70,26 @@ func (j *JMServer) GetDBTokenAuthInfo(ctx context.Context, req *pb.DBTokenReques
7070
return &pb.DBTokenResponse{Status: &status, Data: &dbTokenInfo}, nil
7171
}
7272

73+
func (j *JMServer) RenewToken(ctx context.Context, req *pb.TokenRequest) (*pb.StatusResponse, error) {
74+
var status pb.Status
75+
res, err := j.apiClient.RenewalToken(req.Token)
76+
if err != nil {
77+
status.Err = err.Error()
78+
if res.Msg != "" {
79+
status.Err = res.Msg
80+
}
81+
logger.Errorf("Renew token %s failed: %s", req.Token, err)
82+
return &pb.StatusResponse{Status: &status}, nil
83+
}
84+
logger.Debugf("Renew token %s: %+v", req.Token, res)
85+
status.Ok = res.Ok
86+
if !res.Ok {
87+
status.Err = res.Msg
88+
logger.Infof("Renew token %s failed: %s", req.Token, res.Msg)
89+
}
90+
return &pb.StatusResponse{Status: &status}, nil
91+
}
92+
7393
func (j *JMServer) CreateSession(ctx context.Context, req *pb.SessionCreateRequest) (*pb.SessionCreateResponse, error) {
7494
var (
7595
status pb.Status

pkg/jms-sdk-go/httplib/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ func (c *Client) Do(method, reqUrl string, data, res interface{}, params ...map[
178178
case strings.Contains(resp.Header.Get("Content-Type"), "application/json"):
179179
err = json.Unmarshal(body, res)
180180
if err != nil {
181-
msg := fmt.Sprintf("%s %s failed, unmarshal '%s' response failed: %s", req.Method, req.URL, body[:12], err)
181+
msg := fmt.Sprintf("%s %s failed, unmarshal '%s' response failed: %s", req.Method, req.URL, body, err)
182182
err = errors.New(msg)
183183
return
184184
}

pkg/jms-sdk-go/service/jms_token.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,19 @@ func (s *JMService) GetConnectTokenAuth(token string) (resp TokenAuthInfoRespons
2222
return
2323
}
2424

25+
func (s *JMService) RenewalToken(token string) (resp TokenRenewalResponse, err error) {
26+
data := map[string]string{
27+
"token": token,
28+
}
29+
_, err = s.authClient.Patch(TokenRenewalURL, data, &resp)
30+
return
31+
}
32+
33+
type TokenRenewalResponse struct {
34+
Ok bool `json:"ok"`
35+
Msg string `json:"msg"`
36+
}
37+
2538
type TokenAuthInfoResponse struct {
2639
Info TokenAuthInfo
2740
Err []string

pkg/jms-sdk-go/service/url.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ const (
1616
AuthMFASelectURL = "/api/v1/authentication/mfa/select/" // 选择 MFA
1717

1818
TokenAuthInfoURL = "/api/v1/authentication/connection-token/secret-info/detail/"
19+
TokenRenewalURL = "/api/v1/authentication/connection-token/renewal/"
1920
)
2021

2122
// Session相关API

protobuf-go/protobuf/common.pb.go

Lines changed: 73 additions & 73 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)