Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
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
0
Merge Requests
0
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
Vũ Hoàng Anh
canifa_note
Commits
064c930a
Unverified
Commit
064c930a
authored
Oct 25, 2023
by
Athurg Gooth
Committed by
GitHub
Oct 25, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: validate username before create token (#2439)
Validate username before create token
parent
043357d7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
1 deletion
+16
-1
user_service.go
api/v2/user_service.go
+16
-1
No files found.
api/v2/user_service.go
View file @
064c930a
...
...
@@ -231,7 +231,22 @@ func (s *UserService) CreateUserAccessToken(ctx context.Context, request *apiv2p
if
request
.
ExpiresAt
!=
nil
{
expiresAt
=
request
.
ExpiresAt
.
AsTime
()
}
accessToken
,
err
:=
auth
.
GenerateAccessToken
(
user
.
Username
,
user
.
ID
,
expiresAt
,
[]
byte
(
s
.
Secret
))
// Create access token for other users need to be verified.
if
user
.
Username
!=
request
.
Username
{
// Normal users can only create access tokens for others.
if
user
.
Role
==
store
.
RoleUser
{
return
nil
,
status
.
Errorf
(
codes
.
PermissionDenied
,
"permission denied"
)
}
// The request user must be exist.
requestUser
,
err
:=
s
.
Store
.
GetUser
(
ctx
,
&
store
.
FindUser
{
Username
:
&
request
.
Username
})
if
requestUser
==
nil
||
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
NotFound
,
"fail to find user %s"
,
request
.
Username
)
}
}
accessToken
,
err
:=
auth
.
GenerateAccessToken
(
request
.
Username
,
user
.
ID
,
expiresAt
,
[]
byte
(
s
.
Secret
))
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to generate access token: %v"
,
err
)
}
...
...
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