Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
holmes
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
QA
holmes
Commits
67cc15d7
Commit
67cc15d7
authored
May 27, 2021
by
黎博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
bba76ede
Changes
18
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
288 additions
and
5 deletions
+288
-5
LoginController.java
...n/java/cn/qg/holmes/controller/login/LoginController.java
+32
-2
Permission.java
src/main/java/cn/qg/holmes/entity/auth/Permission.java
+20
-0
Role.java
src/main/java/cn/qg/holmes/entity/auth/Role.java
+20
-0
RolePermission.java
src/main/java/cn/qg/holmes/entity/auth/RolePermission.java
+20
-0
SessionUserInfo.java
src/main/java/cn/qg/holmes/entity/auth/SessionUserInfo.java
+15
-0
User.java
src/main/java/cn/qg/holmes/entity/auth/User.java
+20
-0
UserRole.java
src/main/java/cn/qg/holmes/entity/auth/UserRole.java
+20
-0
PermissionMapper.java
src/main/java/cn/qg/holmes/mapper/auth/PermissionMapper.java
+7
-0
RoleMapper.java
src/main/java/cn/qg/holmes/mapper/auth/RoleMapper.java
+7
-0
RolePermissionMapper.java
...n/java/cn/qg/holmes/mapper/auth/RolePermissionMapper.java
+7
-0
UserMapper.java
src/main/java/cn/qg/holmes/mapper/auth/UserMapper.java
+7
-0
UserRoleMapper.java
src/main/java/cn/qg/holmes/mapper/auth/UserRoleMapper.java
+7
-0
LoginService.java
src/main/java/cn/qg/holmes/service/ldap/LoginService.java
+1
-1
TokenService.java
src/main/java/cn/qg/holmes/service/ldap/TokenService.java
+10
-0
UserService.java
src/main/java/cn/qg/holmes/service/ldap/UserService.java
+9
-0
LoginServiceImpl.java
...java/cn/qg/holmes/service/ldap/impl/LoginServiceImpl.java
+2
-2
TokenServiceImpl.java
...java/cn/qg/holmes/service/ldap/impl/TokenServiceImpl.java
+60
-0
UserServiceImpl.java
.../java/cn/qg/holmes/service/ldap/impl/UserServiceImpl.java
+24
-0
No files found.
src/main/java/cn/qg/holmes/controller/login/LoginController.java
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
controller
.
login
;
package
cn
.
qg
.
holmes
.
controller
.
login
;
import
cn.qg.holmes.common.JsonResult
;
import
cn.qg.holmes.common.JsonResult
;
import
cn.qg.holmes.entity.auth.User
;
import
cn.qg.holmes.mapper.auth.UserMapper
;
import
cn.qg.holmes.service.ldap.LoginService
;
import
cn.qg.holmes.service.ldap.LoginService
;
import
cn.qg.holmes.service.ldap.TokenService
;
import
cn.qg.holmes.service.ldap.UserService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.DigestUtils
;
import
org.springframework.web.bind.annotation.CrossOrigin
;
import
org.springframework.web.bind.annotation.CrossOrigin
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
sun.security.provider.MD5
;
import
java.nio.charset.StandardCharsets
;
import
java.util.HashMap
;
import
java.util.Map
;
@CrossOrigin
@CrossOrigin
@RestController
@RestController
...
@@ -15,8 +25,28 @@ public class LoginController {
...
@@ -15,8 +25,28 @@ public class LoginController {
@Autowired
@Autowired
LoginService
loginService
;
LoginService
loginService
;
@Autowired
TokenService
tokenService
;
@Autowired
UserService
userService
;
@PostMapping
(
"/login"
)
@PostMapping
(
"/login"
)
public
JsonResult
login
(
String
username
,
String
password
)
{
public
JsonResult
login
(
String
username
,
String
password
)
{
return
JsonResult
.
buildSuccessResult
(
loginService
.
login
(
username
,
password
));
boolean
loginResult
=
loginService
.
login
(
username
,
password
);
if
(!
loginResult
)
{
return
JsonResult
.
buildErrorStateResult
(
"用户名或密码错误"
,
false
);
}
User
user
=
userService
.
getUserByUsername
(
username
);
// 用户不存在,则创建新用户
if
(
user
==
null
)
{
user
.
setUsername
(
username
);
user
.
setPassword
(
DigestUtils
.
md5DigestAsHex
(
password
.
getBytes
(
StandardCharsets
.
UTF_8
)));
userService
.
save
(
user
);
}
String
token
=
tokenService
.
generateToken
(
user
.
getId
());
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"token"
,
token
);
return
JsonResult
.
buildSuccessResult
(
map
);
}
}
}
}
src/main/java/cn/qg/holmes/entity/auth/Permission.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
entity
.
auth
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
Permission
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
private
String
permissionName
;
private
String
permissionCode
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
updateTime
;
}
src/main/java/cn/qg/holmes/entity/auth/Role.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
entity
.
auth
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
Role
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
private
String
roleName
;
private
String
roleCode
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
updateTime
;
}
src/main/java/cn/qg/holmes/entity/auth/RolePermission.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
entity
.
auth
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
RolePermission
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
private
Integer
roleId
;
private
Integer
permissionId
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
updateTime
;
}
src/main/java/cn/qg/holmes/entity/auth/SessionUserInfo.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
entity
.
auth
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.Set
;
@Data
public
class
SessionUserInfo
{
private
Integer
userId
;
private
String
username
;
private
List
<
Integer
>
roleIds
;
private
Set
<
String
>
menuList
;
private
Set
<
String
>
permissionList
;
}
src/main/java/cn/qg/holmes/entity/auth/User.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
entity
.
auth
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
User
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
private
String
username
;
private
String
password
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
updateTime
;
}
src/main/java/cn/qg/holmes/entity/auth/UserRole.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
entity
.
auth
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
UserRole
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
private
Integer
userId
;
private
Integer
roleId
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
updateTime
;
}
src/main/java/cn/qg/holmes/mapper/auth/PermissionMapper.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
mapper
.
auth
;
import
cn.qg.holmes.entity.auth.Permission
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
public
interface
PermissionMapper
extends
BaseMapper
<
Permission
>
{
}
src/main/java/cn/qg/holmes/mapper/auth/RoleMapper.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
mapper
.
auth
;
import
cn.qg.holmes.entity.auth.Role
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
public
interface
RoleMapper
extends
BaseMapper
<
Role
>
{
}
src/main/java/cn/qg/holmes/mapper/auth/RolePermissionMapper.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
mapper
.
auth
;
import
cn.qg.holmes.entity.auth.RolePermission
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
public
interface
RolePermissionMapper
extends
BaseMapper
<
RolePermission
>
{
}
src/main/java/cn/qg/holmes/mapper/auth/UserMapper.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
mapper
.
auth
;
import
cn.qg.holmes.entity.auth.User
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
public
interface
UserMapper
extends
BaseMapper
<
User
>
{
}
src/main/java/cn/qg/holmes/mapper/auth/UserRoleMapper.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
mapper
.
auth
;
import
cn.qg.holmes.entity.auth.UserRole
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
public
interface
UserRoleMapper
extends
BaseMapper
<
UserRole
>
{
}
src/main/java/cn/qg/holmes/service/ldap/LoginService.java
View file @
67cc15d7
...
@@ -2,5 +2,5 @@ package cn.qg.holmes.service.ldap;
...
@@ -2,5 +2,5 @@ package cn.qg.holmes.service.ldap;
public
interface
LoginService
{
public
interface
LoginService
{
String
login
(
String
username
,
String
password
);
boolean
login
(
String
username
,
String
password
);
}
}
src/main/java/cn/qg/holmes/service/ldap/TokenService.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
service
.
ldap
;
import
cn.qg.holmes.entity.auth.SessionUserInfo
;
public
interface
TokenService
{
String
generateToken
(
Integer
userId
);
SessionUserInfo
getUserInfoFromCache
(
String
token
);
}
src/main/java/cn/qg/holmes/service/ldap/UserService.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
service
.
ldap
;
import
cn.qg.holmes.entity.auth.User
;
import
com.baomidou.mybatisplus.extension.service.IService
;
public
interface
UserService
extends
IService
<
User
>
{
User
getUserByUsername
(
String
username
);
}
src/main/java/cn/qg/holmes/service/ldap/impl/LoginServiceImpl.java
View file @
67cc15d7
...
@@ -13,9 +13,9 @@ public class LoginServiceImpl implements LoginService {
...
@@ -13,9 +13,9 @@ public class LoginServiceImpl implements LoginService {
LdapService
ldapService
;
LdapService
ldapService
;
@Override
@Override
public
String
login
(
String
username
,
String
password
)
{
public
boolean
login
(
String
username
,
String
password
)
{
boolean
result
=
ldapService
.
authenticate
(
username
,
password
);
boolean
result
=
ldapService
.
authenticate
(
username
,
password
);
log
.
info
(
"登录结果为:{}"
,
result
);
log
.
info
(
"登录结果为:{}"
,
result
);
return
null
;
return
result
;
}
}
}
}
src/main/java/cn/qg/holmes/service/ldap/impl/TokenServiceImpl.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
service
.
ldap
.
impl
;
import
cn.qg.holmes.entity.auth.SessionUserInfo
;
import
cn.qg.holmes.entity.auth.User
;
import
cn.qg.holmes.mapper.auth.UserMapper
;
import
cn.qg.holmes.service.ldap.TokenService
;
import
cn.qg.holmes.utils.RedisUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.naming.ContextNotEmptyException
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.UUID
;
@Slf4j
@Service
public
class
TokenServiceImpl
implements
TokenService
{
private
final
String
TOKEN_PREFIX
=
"user:token:"
;
@Autowired
RedisUtils
redisUtils
;
@Autowired
UserMapper
userMapper
;
/**
* 生成token并存放到redis
* @param userId 用户id
* @return
*/
@Override
public
String
generateToken
(
Integer
userId
)
{
String
token
=
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
).
substring
(
0
,
20
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
User
user
=
userMapper
.
selectById
(
userId
);
map
.
put
(
"userId"
,
userId
);
map
.
put
(
"username"
,
user
.
getUsername
());
//设置用户信息缓存
redisUtils
.
set
(
TOKEN_PREFIX
+
token
,
map
);
return
token
;
}
/**
* 根据token从redis获取用户信息
* @param token 用户token
* @return
*/
@Override
public
SessionUserInfo
getUserInfoFromCache
(
String
token
)
{
if
(
StringUtils
.
isEmpty
(
token
))
{
return
null
;
}
SessionUserInfo
sessionUserInfo
=
(
SessionUserInfo
)
redisUtils
.
get
(
token
);
return
sessionUserInfo
;
}
}
src/main/java/cn/qg/holmes/service/ldap/impl/UserServiceImpl.java
0 → 100644
View file @
67cc15d7
package
cn
.
qg
.
holmes
.
service
.
ldap
.
impl
;
import
cn.qg.holmes.entity.auth.User
;
import
cn.qg.holmes.mapper.auth.UserMapper
;
import
cn.qg.holmes.service.ldap.UserService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Service
public
class
UserServiceImpl
extends
ServiceImpl
<
UserMapper
,
User
>
implements
UserService
{
@Autowired
UserMapper
userMapper
;
@Override
public
User
getUserByUsername
(
String
username
)
{
QueryWrapper
<
User
>
userQueryWrapper
=
new
QueryWrapper
<>();
userQueryWrapper
.
eq
(
"username"
,
username
);
User
user
=
userMapper
.
selectOne
(
userQueryWrapper
);
return
user
;
}
}
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