Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wecloud_im_server
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hewei
wecloud_im_server
Commits
36121f3e
Commit
36121f3e
authored
Sep 29, 2020
by
giaogiao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
短信验证码; shiro获取当前用户id; 增加app注册登陆
parent
57fea55b
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
407 additions
and
112 deletions
+407
-112
README-zh.md
+0
-0
README.md
+0
-0
api-app/src/main/java/com/jumeirah/api/app/controller/AppSmsController.java
+46
-0
api-app/src/main/java/com/jumeirah/api/app/controller/AppUserController.java
+15
-19
api-app/src/main/java/com/jumeirah/api/app/service/AppSmsService.java
+12
-0
api-app/src/main/java/com/jumeirah/api/app/service/impl/AppSmsServiceImpl.java
+60
-0
api-app/src/main/java/com/jumeirah/api/app/vo/RedisSmsCode.java
+14
-0
api-app/src/main/java/com/jumeirah/api/app/vo/SmsCode.java
+11
-0
common/src/main/java/com/jumeirah/common/convert/SysUserConvert.java
+3
-3
common/src/main/java/com/jumeirah/common/param/app/AppLoginParam.java
+42
-0
common/src/main/java/com/jumeirah/common/param/app/AppSmsRegisterParam.java
+46
-0
common/src/main/java/com/jumeirah/common/service/AppUserService.java
+4
-4
common/src/main/java/com/jumeirah/common/service/impl/AppUserServiceImpl.java
+21
-23
common/src/main/java/com/jumeirah/common/service/impl/MerchantUserServiceImpl.java
+2
-2
common/src/main/java/com/jumeirah/common/service/impl/SysLoginServiceImpl.java
+2
-2
common/src/main/java/com/jumeirah/common/vo/LoginSysUserTokenVo.java
+2
-2
common/src/main/java/com/jumeirah/common/vo/app/LoginAppUserTokenVo.java
+52
-0
config/src/main/resources/config/application.yml
+4
-1
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/cache/AppLoginRedisService.java
+5
-5
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/cache/MerchantLoginRedisService.java
+5
-5
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/cache/SysLoginRedisService.java
+5
-5
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/cache/impl/AppLoginRedisServiceImpl.java
+10
-9
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/cache/impl/MerchantLoginRedisServiceImpl.java
+10
-9
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/cache/impl/SysLoginRedisServiceImpl.java
+10
-9
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/convert/LoginSysUserVoConvert.java
+3
-3
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/jwt/JwtToken.java
+6
-0
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/jwt/realm/JwtRealmMerchant.java
+2
-2
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/jwt/realm/JwtRealmSystem.java
+2
-2
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/vo/JwtTokenRedisVo.java
+6
-0
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/vo/LoginUserRedisVo.java
+1
-1
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/vo/LoginUserVo.java
+1
-1
framework/src/main/java/io/geekidea/springbootplus/framework/util/LoginUtil.java
+5
-5
No files found.
README-zh.md
View file @
36121f3e
This diff is collapsed.
Click to expand it.
README.md
View file @
36121f3e
This diff is collapsed.
Click to expand it.
api-app/src/main/java/com/jumeirah/api/app/controller/AppSmsController.java
0 → 100644
View file @
36121f3e
package
com
.
jumeirah
.
api
.
app
.
controller
;
import
com.jumeirah.api.app.service.AppSmsService
;
import
com.jumeirah.api.app.vo.SmsCode
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.controller.BaseController
;
import
io.geekidea.springbootplus.framework.log.annotation.OperationLog
;
import
io.geekidea.springbootplus.framework.log.enums.OperationLogType
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* APP用户 控制器
*
* @author wei
* @since 2020-09-23
*/
@Slf4j
@RestController
//@Module("api-app")
@Api
(
value
=
"短信验证码"
,
tags
=
{
"APP短信验证码相关"
})
@RequestMapping
(
"/app/sms/"
)
public
class
AppSmsController
extends
BaseController
{
@Autowired
private
AppSmsService
appSmsService
;
/**
* 获取注册验证码
*/
@GetMapping
(
"/register"
)
@OperationLog
(
name
=
"获取注册验证码"
,
type
=
OperationLogType
.
INFO
)
@ApiOperation
(
value
=
"获取注册验证码"
,
response
=
SmsCode
.
class
,
notes
=
"本地环境默认666666"
)
public
ApiResult
<
SmsCode
>
register
(
@RequestParam
String
area
,
@RequestParam
String
number
)
throws
Exception
{
return
appSmsService
.
registerType
(
area
,
number
);
}
}
api-app/src/main/java/com/jumeirah/api/app/controller/AppUserController.java
View file @
36121f3e
...
...
@@ -3,21 +3,23 @@ package com.jumeirah.api.app.controller;
import
com.jumeirah.common.entity.AppUser
;
import
com.jumeirah.common.param.AppUserPageParam
;
import
com.jumeirah.common.param.LoginParam
;
import
com.jumeirah.common.param.RegisterParam
;
import
com.jumeirah.common.param.
app.AppSms
RegisterParam
;
import
com.jumeirah.common.service.AppUserService
;
import
com.jumeirah.common.vo.AppUserQueryVo
;
import
com.jumeirah.common.vo.LoginSysUserTokenVo
;
import
com.jumeirah.common.vo.app.LoginAppUserTokenVo
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.controller.BaseController
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
io.geekidea.springbootplus.framework.core.validator.groups.Add
;
import
io.geekidea.springbootplus.framework.core.validator.groups.Update
;
import
io.geekidea.springbootplus.framework.log.annotation.Module
;
import
io.geekidea.springbootplus.framework.log.annotation.OperationLog
;
import
io.geekidea.springbootplus.framework.log.annotation.OperationLogIgnore
;
import
io.geekidea.springbootplus.framework.log.enums.OperationLogType
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.authz.annotation.RequiresRoles
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
...
@@ -28,8 +30,6 @@ import org.springframework.web.bind.annotation.RequestHeader;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletResponse
;
/**
* APP用户 控制器
*
...
...
@@ -38,7 +38,7 @@ import javax.servlet.http.HttpServletResponse;
*/
@Slf4j
@RestController
//
@Module("api-app")
@Module
(
"api-app"
)
@Api
(
value
=
"用户API"
,
tags
=
{
"APP用户相关"
})
@RequestMapping
(
"/app/user/"
)
public
class
AppUserController
extends
BaseController
{
...
...
@@ -52,6 +52,7 @@ public class AppUserController extends BaseController {
@PostMapping
(
"/add"
)
@OperationLog
(
name
=
"添加APP用户"
,
type
=
OperationLogType
.
ADD
)
@ApiOperation
(
value
=
"添加APP用户"
,
response
=
ApiResult
.
class
)
@RequiresRoles
(
"sys:admin"
)
public
ApiResult
<
Boolean
>
addAppUser
(
@Validated
(
Add
.
class
)
@RequestBody
AppUser
appUser
)
throws
Exception
{
boolean
flag
=
appUserService
.
saveAppUser
(
appUser
);
return
ApiResult
.
result
(
flag
);
...
...
@@ -63,6 +64,7 @@ public class AppUserController extends BaseController {
@PostMapping
(
"/update"
)
@OperationLog
(
name
=
"修改APP用户"
,
type
=
OperationLogType
.
UPDATE
)
@ApiOperation
(
value
=
"修改APP用户"
,
response
=
ApiResult
.
class
)
@RequiresRoles
(
"sys:admin"
)
public
ApiResult
<
Boolean
>
updateAppUser
(
@Validated
(
Update
.
class
)
@RequestBody
AppUser
appUser
)
throws
Exception
{
boolean
flag
=
appUserService
.
updateAppUser
(
appUser
);
return
ApiResult
.
result
(
flag
);
...
...
@@ -74,6 +76,7 @@ public class AppUserController extends BaseController {
@PostMapping
(
"/delete/{id}"
)
@OperationLog
(
name
=
"删除APP用户"
,
type
=
OperationLogType
.
DELETE
)
@ApiOperation
(
value
=
"删除APP用户"
,
response
=
ApiResult
.
class
)
@RequiresRoles
(
"sys:admin"
)
public
ApiResult
<
Boolean
>
deleteAppUser
(
@PathVariable
(
"id"
)
Long
id
)
throws
Exception
{
boolean
flag
=
appUserService
.
deleteAppUser
(
id
);
return
ApiResult
.
result
(
flag
);
...
...
@@ -85,6 +88,7 @@ public class AppUserController extends BaseController {
@GetMapping
(
"/info/{id}"
)
@OperationLog
(
name
=
"APP用户详情"
,
type
=
OperationLogType
.
INFO
)
@ApiOperation
(
value
=
"APP用户详情"
,
response
=
AppUserQueryVo
.
class
)
@RequiresRoles
(
"sys:admin"
)
public
ApiResult
<
AppUserQueryVo
>
getAppUser
(
@PathVariable
(
"id"
)
Long
id
)
throws
Exception
{
AppUserQueryVo
appUserQueryVo
=
appUserService
.
getAppUserById
(
id
);
return
ApiResult
.
ok
(
appUserQueryVo
);
...
...
@@ -96,31 +100,23 @@ public class AppUserController extends BaseController {
@PostMapping
(
"/getPageList"
)
@OperationLog
(
name
=
"APP用户分页列表"
,
type
=
OperationLogType
.
PAGE
)
@ApiOperation
(
value
=
"APP用户分页列表"
,
response
=
AppUserQueryVo
.
class
)
@RequiresRoles
(
"sys:admin"
)
public
ApiResult
<
Paging
<
AppUserQueryVo
>>
getAppUserPageList
(
@Validated
@RequestBody
AppUserPageParam
appUserPageParam
)
throws
Exception
{
Paging
<
AppUserQueryVo
>
paging
=
appUserService
.
getAppUserPageList
(
appUserPageParam
);
return
ApiResult
.
ok
(
paging
);
}
@PostMapping
(
"/register"
)
@OperationLogIgnore
@ApiOperation
(
value
=
"注册"
,
notes
=
"web用户注册"
,
response
=
LoginSysUserTokenVo
.
class
)
public
ApiResult
<
LoginSysUserTokenVo
>
register
(
@Validated
@RequestBody
RegisterParam
registerParam
,
HttpServletResponse
response
,
@RequestHeader
(
required
=
false
)
String
language
)
throws
Exception
{
return
appUserService
.
register
(
registerParam
,
language
);
@ApiOperation
(
value
=
"手机号注册"
,
notes
=
"app用户注册"
,
response
=
LoginSysUserTokenVo
.
class
)
public
ApiResult
<
LoginAppUserTokenVo
>
register
(
@Validated
@RequestBody
AppSmsRegisterParam
appSmsRegisterParam
,
@RequestHeader
(
required
=
false
)
String
language
)
throws
Exception
{
return
appUserService
.
register
(
appSmsRegisterParam
,
language
);
}
@PostMapping
(
"/login"
)
@OperationLogIgnore
@ApiOperation
(
value
=
"登录"
,
notes
=
"系统用户登录"
,
response
=
LoginSysUserTokenVo
.
class
)
public
ApiResult
<
LoginSysUserTokenVo
>
login
(
@Validated
@RequestBody
LoginParam
loginParam
,
HttpServletResponse
response
,
@RequestHeader
(
required
=
false
)
String
language
)
throws
Exception
{
@ApiOperation
(
value
=
"手机号登陆"
,
notes
=
"app用户登录"
,
response
=
LoginSysUserTokenVo
.
class
)
public
ApiResult
<
LoginAppUserTokenVo
>
login
(
@Validated
@RequestBody
AppSmsRegisterParam
loginParam
,
@RequestHeader
(
required
=
false
)
String
language
)
throws
Exception
{
return
appUserService
.
login
(
loginParam
,
language
);
}
// @PostMapping("/phoneLogin")
// @OperationLogIgnore
// @ApiOperation(value = "手机号登陆", notes = "手机号登陆", response = LoginSysUserTokenVo.class)
// public ApiResult<LoginSysUserTokenVo> phoneLogin(@Validated @RequestBody RegisterParam registerParam, HttpServletResponse response, @RequestHeader(required = false) String language) throws Exception {
// return appUserService.register(registerParam, language);
// }
}
api-app/src/main/java/com/jumeirah/api/app/service/AppSmsService.java
0 → 100644
View file @
36121f3e
package
com
.
jumeirah
.
api
.
app
.
service
;
import
com.jumeirah.api.app.vo.SmsCode
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
public
interface
AppSmsService
{
/**
* 获取注册验证码
*/
ApiResult
<
SmsCode
>
registerType
(
String
area
,
String
number
);
}
api-app/src/main/java/com/jumeirah/api/app/service/impl/AppSmsServiceImpl.java
0 → 100644
View file @
36121f3e
package
com
.
jumeirah
.
api
.
app
.
service
.
impl
;
import
cn.hutool.core.util.RandomUtil
;
import
com.jumeirah.api.app.service.AppSmsService
;
import
com.jumeirah.api.app.vo.SmsCode
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
java.time.Duration
;
import
java.util.Arrays
;
@Service
@Slf4j
public
class
AppSmsServiceImpl
implements
AppSmsService
{
/**
* SpringBoot获取当前环境
*/
@Value
(
"${spring.profiles.active}"
)
private
String
profiles
;
@Autowired
private
RedisTemplate
redisTemplate
;
private
static
final
String
SMS_REGIEST
=
"sms:register:%s:%s"
;
@Override
public
ApiResult
<
SmsCode
>
registerType
(
String
area
,
String
number
)
{
String
randomCode
=
getRandomCode
();
// 存入redis
long
expire
=
120L
;
Duration
expireDuration
=
Duration
.
ofSeconds
(
expire
);
redisTemplate
.
opsForValue
().
set
(
String
.
format
(
SMS_REGIEST
,
area
,
number
),
randomCode
,
expireDuration
);
SmsCode
smsCode
=
new
SmsCode
();
smsCode
.
setCode
(
randomCode
);
log
.
info
(
area
+
","
+
number
+
":"
+
randomCode
);
// TODO 需要补充调用发送代码
return
ApiResult
.
ok
(
smsCode
);
}
String
getRandomCode
()
{
// 如果为测试环境则生成默认
if
(
profiles
.
equals
(
"dev"
))
{
return
"666666"
;
}
else
{
return
Arrays
.
toString
(
RandomUtil
.
randomInts
(
6
));
}
}
}
api-app/src/main/java/com/jumeirah/api/app/vo/RedisSmsCode.java
0 → 100644
View file @
36121f3e
package
com
.
jumeirah
.
api
.
app
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
RedisSmsCode
implements
Serializable
{
private
String
code
;
private
String
area
;
private
String
number
;
}
api-app/src/main/java/com/jumeirah/api/app/vo/SmsCode.java
0 → 100644
View file @
36121f3e
package
com
.
jumeirah
.
api
.
app
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
SmsCode
implements
Serializable
{
private
String
code
;
}
common/src/main/java/com/jumeirah/common/convert/SysUserConvert.java
View file @
36121f3e
...
...
@@ -18,7 +18,7 @@ package com.jumeirah.common.convert;
import
com.jumeirah.common.entity.MerchantUser
;
import
com.jumeirah.common.entity.SysUser
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserVo
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
...
...
@@ -39,9 +39,9 @@ public interface SysUserConvert {
* @param sysUser
* @return
*/
Login
Sys
UserVo
sysUserToLoginSysUserVo
(
SysUser
sysUser
);
LoginUserVo
sysUserToLoginSysUserVo
(
SysUser
sysUser
);
Login
Sys
UserVo
merchantUserToLoginSysUserVo
(
MerchantUser
sysUser
);
LoginUserVo
merchantUserToLoginSysUserVo
(
MerchantUser
sysUser
);
}
common/src/main/java/com/jumeirah/common/param/app/AppLoginParam.java
0 → 100755
View file @
36121f3e
/*
* Copyright 2019-2029 geekidea(https://github.com/geekidea)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com
.
jumeirah
.
common
.
param
.
app
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* 登录参数
*
* @author geekidea
* @date 2019-05-15
**/
@Data
@ApiModel
(
"登录参数"
)
public
class
AppLoginParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
2854217576695117356L
;
private
String
area
;
private
String
number
;
@ApiModelProperty
(
"验证码"
)
private
String
code
;
}
common/src/main/java/com/jumeirah/common/param/app/AppSmsRegisterParam.java
0 → 100755
View file @
36121f3e
/*
* Copyright 2019-2029 geekidea(https://github.com/geekidea)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com
.
jumeirah
.
common
.
param
.
app
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
java.io.Serializable
;
/**
* 注册参数
*
* @author geekidea
* @date 2019-05-15
**/
@Data
@ApiModel
(
"app手机验证码注册参数"
)
public
class
AppSmsRegisterParam
implements
Serializable
{
@NotBlank
(
message
=
"请输入手机区号"
)
@ApiModelProperty
(
value
=
"手机区号"
,
example
=
"855"
)
private
String
phoneArea
;
@NotBlank
(
message
=
"请输入手机号"
)
@ApiModelProperty
(
value
=
"手机号"
,
example
=
"081611122"
)
private
String
phone
;
@ApiModelProperty
(
"短信验证码"
)
private
String
smsCode
;
}
common/src/main/java/com/jumeirah/common/service/AppUserService.java
View file @
36121f3e
...
...
@@ -2,10 +2,11 @@ package com.jumeirah.common.service;
import
com.jumeirah.common.entity.AppUser
;
import
com.jumeirah.common.param.AppUserPageParam
;
import
com.jumeirah.common.param.LoginParam
;
import
com.jumeirah.common.param.RegisterParam
;
import
com.jumeirah.common.param.app.AppSmsRegisterParam
;
import
com.jumeirah.common.vo.AppUserQueryVo
;
import
com.jumeirah.common.vo.LoginSysUserTokenVo
;
import
com.jumeirah.common.vo.app.LoginAppUserTokenVo
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
...
...
@@ -18,12 +19,11 @@ import io.geekidea.springbootplus.framework.core.pagination.Paging;
*/
public
interface
AppUserService
extends
BaseService
<
AppUser
>
{
ApiResult
<
Login
SysUserTokenVo
>
register
(
RegisterParam
r
egisterParam
,
String
language
);
ApiResult
<
Login
AppUserTokenVo
>
register
(
AppSmsRegisterParam
appSmsR
egisterParam
,
String
language
);
ApiResult
<
Login
SysUserTokenVo
>
login
(
Login
Param
loginParam
,
String
language
);
ApiResult
<
Login
AppUserTokenVo
>
login
(
AppSmsRegister
Param
loginParam
,
String
language
);
ApiResult
<
LoginSysUserTokenVo
>
phoneLogin
(
RegisterParam
registerParam
,
String
language
);
/**
* 保存
...
...
common/src/main/java/com/jumeirah/common/service/impl/AppUserServiceImpl.java
View file @
36121f3e
...
...
@@ -8,11 +8,10 @@ import com.jumeirah.common.entity.AppUser;
import
com.jumeirah.common.enums.StateEnum
;
import
com.jumeirah.common.mapper.AppUserMapper
;
import
com.jumeirah.common.param.AppUserPageParam
;
import
com.jumeirah.common.param.LoginParam
;
import
com.jumeirah.common.param.RegisterParam
;
import
com.jumeirah.common.param.app.AppSmsRegisterParam
;
import
com.jumeirah.common.service.AppUserService
;
import
com.jumeirah.common.vo.AppUserQueryVo
;
import
com.jumeirah.common.vo.
LoginSys
UserTokenVo
;
import
com.jumeirah.common.vo.
app.LoginApp
UserTokenVo
;
import
io.geekidea.springbootplus.config.properties.JwtProperties
;
import
io.geekidea.springbootplus.config.properties.SpringBootPlusProperties
;
import
io.geekidea.springbootplus.framework.common.api.ApiCode
;
...
...
@@ -24,8 +23,7 @@ import io.geekidea.springbootplus.framework.shiro.cache.AppLoginRedisService;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.util.JwtUtil
;
import
io.geekidea.springbootplus.framework.shiro.util.SaltUtil
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginSysUserVo
;
import
io.geekidea.springbootplus.framework.util.PasswordUtil
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.apache.shiro.SecurityUtils
;
...
...
@@ -68,18 +66,23 @@ public class AppUserServiceImpl extends BaseServiceImpl<AppUserMapper, AppUser>
private
AppUserMapper
appUserMapper
;
@Override
public
ApiResult
<
LoginSysUserTokenVo
>
register
(
RegisterParam
registerParam
,
String
language
)
{
public
ApiResult
<
LoginAppUserTokenVo
>
register
(
AppSmsRegisterParam
appSmsRegisterParam
,
String
language
)
{
// JwtToken jwtToken = (JwtToken) SecurityUtils.getSubject().getPrincipal();
// 校验短信验证码是否正确
return
null
;
}
@Override
public
ApiResult
<
Login
SysUserTokenVo
>
login
(
LoginParam
loginParam
,
String
language
)
{
public
ApiResult
<
Login
AppUserTokenVo
>
login
(
AppSmsRegisterParam
loginParam
,
String
language
)
{
// 校验验证码
// checkVerifyCode(loginParam.getVerifyToken(), loginParam.getCode());
String
username
=
loginParam
.
get
Usernam
e
();
String
username
=
loginParam
.
get
Phon
e
();
// 从数据库中获取登录用户信息
AppUser
appUser
=
appUserMapper
.
selectOne
(
new
QueryWrapper
<
AppUser
>(
new
AppUser
().
setUsername
(
username
)));
...
...
@@ -98,13 +101,13 @@ public class AppUserServiceImpl extends BaseServiceImpl<AppUserMapper, AppUser>
// 原始密码明文:123456
// 原始密码前端加密:sha256(123456)
// 后台加密规则:sha256(sha256(123456) + salt)
String
encryptPassword
=
PasswordUtil
.
encrypt
(
loginParam
.
getPassword
(),
appUser
.
getSalt
());
if
(!
encryptPassword
.
equals
(
appUser
.
getPassword
()))
{
return
ApiResult
.
fail
(
ApiCode
.
PWD_OR_USERNAME_ERROR
,
language
);
}
//
String encryptPassword = PasswordUtil.encrypt(loginParam.getPassword(), appUser.getSalt());
//
if (!encryptPassword.equals(appUser.getPassword())) {
//
return ApiResult.fail(ApiCode.PWD_OR_USERNAME_ERROR, language);
//
}
// 将系统用户对象转换成登录用户对象
Login
SysUserVo
loginSysUserVo
=
new
LoginSys
UserVo
();
Login
UserVo
loginSysUserVo
=
new
Login
UserVo
();
loginSysUserVo
.
setUsername
(
username
);
...
...
@@ -138,21 +141,16 @@ public class AppUserServiceImpl extends BaseServiceImpl<AppUserMapper, AppUser>
redisTemplate
.
opsForValue
().
set
(
tokenSha256
,
loginSysUserVo
,
1
,
TimeUnit
.
DAYS
);
// 返回token和登录用户信息对象
Login
SysUserTokenVo
loginSysUserTokenVo
=
new
LoginSys
UserTokenVo
();
Login
AppUserTokenVo
loginSysUserTokenVo
=
new
LoginApp
UserTokenVo
();
loginSysUserTokenVo
.
setToken
(
token
);
loginSysUserTokenVo
.
setLoginSysUserVo
(
loginSysUserVo
);
// 设置token响应头
// response.setHeader(JwtTokenUtil.getTokenName(), loginSysUserTokenVo.getToken());
return
ApiResult
.
ok
(
loginSysUserTokenVo
,
language
);
}
@Override
public
ApiResult
<
LoginSysUserTokenVo
>
phoneLogin
(
RegisterParam
registerParam
,
String
language
)
{
return
null
;
}
//
@Override
//
public ApiResult<LoginSysUserTokenVo> phoneLogin(RegisterParam registerParam, String language) {
//
return null;
//
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
...
...
common/src/main/java/com/jumeirah/common/service/impl/MerchantUserServiceImpl.java
View file @
36121f3e
...
...
@@ -28,7 +28,7 @@ import io.geekidea.springbootplus.framework.shiro.jwt.JwtToken;
import
io.geekidea.springbootplus.framework.shiro.util.JwtTokenUtil
;
import
io.geekidea.springbootplus.framework.shiro.util.JwtUtil
;
import
io.geekidea.springbootplus.framework.shiro.util.SaltUtil
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserVo
;
import
io.geekidea.springbootplus.framework.util.PasswordUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.SecurityUtils
;
...
...
@@ -114,7 +114,7 @@ public class MerchantUserServiceImpl extends BaseServiceImpl<MerchantUserMapper,
}
// 将系统用户对象转换成登录用户对象
Login
Sys
UserVo
loginSysUserVo
=
SysUserConvert
.
INSTANCE
.
merchantUserToLoginSysUserVo
(
merchantUser
);
LoginUserVo
loginSysUserVo
=
SysUserConvert
.
INSTANCE
.
merchantUserToLoginSysUserVo
(
merchantUser
);
// // 获取部门
// SysDepartment sysDepartment = sysDepartmentService.getById(merchantUser.getDepartmentId());
...
...
common/src/main/java/com/jumeirah/common/service/impl/SysLoginServiceImpl.java
View file @
36121f3e
...
...
@@ -40,7 +40,7 @@ import io.geekidea.springbootplus.framework.shiro.jwt.JwtToken;
import
io.geekidea.springbootplus.framework.shiro.util.JwtTokenUtil
;
import
io.geekidea.springbootplus.framework.shiro.util.JwtUtil
;
import
io.geekidea.springbootplus.framework.shiro.util.SaltUtil
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserVo
;
import
io.geekidea.springbootplus.framework.util.PasswordUtil
;
import
io.swagger.annotations.Api
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -134,7 +134,7 @@ public class SysLoginServiceImpl implements SysLoginService {
}
// 将系统用户对象转换成登录用户对象
Login
Sys
UserVo
loginSysUserVo
=
SysUserConvert
.
INSTANCE
.
sysUserToLoginSysUserVo
(
sysUser
);
LoginUserVo
loginSysUserVo
=
SysUserConvert
.
INSTANCE
.
sysUserToLoginSysUserVo
(
sysUser
);
// 获取部门
SysDepartment
sysDepartment
=
sysDepartmentService
.
getById
(
sysUser
.
getDepartmentId
());
...
...
common/src/main/java/com/jumeirah/common/vo/LoginSysUserTokenVo.java
View file @
36121f3e
...
...
@@ -17,7 +17,7 @@
package
com
.
jumeirah
.
common
.
vo
;
import
io.geekidea.springbootplus.framework.shiro.service.LoginToken
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserVo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
@@ -40,5 +40,5 @@ public class LoginSysUserTokenVo implements LoginToken {
/**
* 登录用户对象
*/
private
Login
Sys
UserVo
loginSysUserVo
;
private
LoginUserVo
loginSysUserVo
;
}
common/src/main/java/com/jumeirah/common/vo/app/LoginAppUserTokenVo.java
0 → 100755
View file @
36121f3e
/*
* Copyright 2019-2029 geekidea(https://github.com/geekidea)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com
.
jumeirah
.
common
.
vo
.
app
;
import
io.geekidea.springbootplus.framework.shiro.service.LoginToken
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* @author geekidea
* @date 2019-10-26
**/
@Data
@Accessors
(
chain
=
true
)
@ApiModel
(
"登录用户信息TokenVO"
)
public
class
LoginAppUserTokenVo
implements
LoginToken
{
private
static
final
long
serialVersionUID
=
-
2138450422989081056L
;
@ApiModelProperty
(
"token"
)
private
String
token
;
@ApiModelProperty
(
"主键"
)
private
Long
id
;
@ApiModelProperty
(
"用户名"
)
private
String
username
;
@ApiModelProperty
(
"昵称"
)
private
String
nickname
;
// /**
// * 登录用户对象
// */
// private LoginUserVo loginSysUserVo;
}
config/src/main/resources/config/application.yml
View file @
36121f3e
...
...
@@ -183,7 +183,10 @@ spring-boot-plus:
# 权限配置
anon
:
# 排除登录 注册 登出
-
/app/user/register,/app/user/phoneLogin,/app/user/login,/sys/login,/sys/logout,/sys/register,/merchantUser/login
-
/app/user/register,/app/user/phoneLogin,/app/user/login
-
/sys/login,/sys/logout,/sys/register
-
/merchantUser/login
-
/app/sms/register
# 排除静态资源
-
/static/**,/templates/**
# 排除Swagger
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/cache/AppLoginRedisService.java
View file @
36121f3e
...
...
@@ -18,8 +18,8 @@ package io.geekidea.springbootplus.framework.shiro.cache;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserVo
;
/**
* 登录信息Redis缓存操作服务
...
...
@@ -36,7 +36,7 @@ public interface AppLoginRedisService {
* @param jwtToken
* @param loginSysUserVo
*/
void
cacheLoginInfo
(
JwtToken
jwtToken
,
Login
Sys
UserVo
loginSysUserVo
);
void
cacheLoginInfo
(
JwtToken
jwtToken
,
LoginUserVo
loginSysUserVo
);
/**
...
...
@@ -54,7 +54,7 @@ public interface AppLoginRedisService {
* @param username
* @return
*/
Login
Sys
UserRedisVo
getLoginSysUserRedisVo
(
String
username
);
LoginUserRedisVo
getLoginSysUserRedisVo
(
String
username
);
/**
* 获取登录用户对象
...
...
@@ -62,7 +62,7 @@ public interface AppLoginRedisService {
* @param username
* @return
*/
Login
Sys
UserVo
getLoginSysUserVo
(
String
username
);
LoginUserVo
getLoginSysUserVo
(
String
username
);
/**
* 通过用户名称获取盐值
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/cache/MerchantLoginRedisService.java
View file @
36121f3e
...
...
@@ -18,8 +18,8 @@ package io.geekidea.springbootplus.framework.shiro.cache;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserVo
;
/**
* 登录信息Redis缓存操作服务
...
...
@@ -36,7 +36,7 @@ public interface MerchantLoginRedisService {
* @param jwtToken
* @param loginSysUserVo
*/
void
cacheLoginInfo
(
JwtToken
jwtToken
,
Login
Sys
UserVo
loginSysUserVo
);
void
cacheLoginInfo
(
JwtToken
jwtToken
,
LoginUserVo
loginSysUserVo
);
/**
...
...
@@ -54,7 +54,7 @@ public interface MerchantLoginRedisService {
* @param username
* @return
*/
Login
Sys
UserRedisVo
getLoginSysUserRedisVo
(
String
username
);
LoginUserRedisVo
getLoginSysUserRedisVo
(
String
username
);
/**
* 获取登录用户对象
...
...
@@ -62,7 +62,7 @@ public interface MerchantLoginRedisService {
* @param username
* @return
*/
Login
Sys
UserVo
getLoginSysUserVo
(
String
username
);
LoginUserVo
getLoginSysUserVo
(
String
username
);
/**
* 通过用户名称获取盐值
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/cache/SysLoginRedisService.java
View file @
36121f3e
...
...
@@ -18,8 +18,8 @@ package io.geekidea.springbootplus.framework.shiro.cache;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserVo
;
/**
* 登录信息Redis缓存操作服务
...
...
@@ -36,7 +36,7 @@ public interface SysLoginRedisService {
* @param jwtToken
* @param loginSysUserVo
*/
void
cacheLoginInfo
(
JwtToken
jwtToken
,
Login
Sys
UserVo
loginSysUserVo
);
void
cacheLoginInfo
(
JwtToken
jwtToken
,
LoginUserVo
loginSysUserVo
);
/**
...
...
@@ -54,7 +54,7 @@ public interface SysLoginRedisService {
* @param username
* @return
*/
Login
Sys
UserRedisVo
getLoginSysUserRedisVo
(
String
username
);
LoginUserRedisVo
getLoginSysUserRedisVo
(
String
username
);
/**
* 获取登录用户对象
...
...
@@ -62,7 +62,7 @@ public interface SysLoginRedisService {
* @param username
* @return
*/
Login
Sys
UserVo
getLoginSysUserVo
(
String
username
);
LoginUserVo
getLoginSysUserVo
(
String
username
);
/**
* 通过用户名称获取盐值
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/cache/impl/AppLoginRedisServiceImpl.java
View file @
36121f3e
...
...
@@ -9,8 +9,8 @@ import io.geekidea.springbootplus.framework.shiro.convert.LoginSysUserVoConvert;
import
io.geekidea.springbootplus.framework.shiro.convert.ShiroMapstructConvert
;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.vo.JwtTokenRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserVo
;
import
io.geekidea.springbootplus.framework.util.ClientInfoUtil
;
import
io.geekidea.springbootplus.framework.util.HttpServletRequestUtil
;
import
org.apache.commons.codec.digest.DigestUtils
;
...
...
@@ -42,7 +42,7 @@ public class AppLoginRedisServiceImpl implements AppLoginRedisService {
* username:num
*/
@Override
public
void
cacheLoginInfo
(
JwtToken
jwtToken
,
Login
Sys
UserVo
loginSysUserVo
)
{
public
void
cacheLoginInfo
(
JwtToken
jwtToken
,
LoginUserVo
loginSysUserVo
)
{
if
(
jwtToken
==
null
)
{
throw
new
IllegalArgumentException
(
"jwtToken不能为空"
);
}
...
...
@@ -61,13 +61,14 @@ public class AppLoginRedisServiceImpl implements AppLoginRedisService {
// Redis缓存JWT Token信息
JwtTokenRedisVo
jwtTokenRedisVo
=
ShiroMapstructConvert
.
INSTANCE
.
jwtTokenToJwtTokenRedisVo
(
jwtToken
);
jwtTokenRedisVo
.
setUserId
(
loginSysUserVo
.
getId
());
// 用户客户端信息
ClientInfo
clientInfo
=
ClientInfoUtil
.
get
(
HttpServletRequestUtil
.
getRequest
());
// Redis缓存登录用户信息
// 将LoginSysUserVo对象复制到LoginSysUserRedisVo,使用mapstruct进行对象属性复制
Login
Sys
UserRedisVo
loginSysUserRedisVo
=
LoginSysUserVoConvert
.
INSTANCE
.
voToRedisVo
(
loginSysUserVo
);
LoginUserRedisVo
loginSysUserRedisVo
=
LoginSysUserVoConvert
.
INSTANCE
.
voToRedisVo
(
loginSysUserVo
);
loginSysUserRedisVo
.
setSalt
(
salt
);
loginSysUserRedisVo
.
setClientInfo
(
clientInfo
);
...
...
@@ -94,7 +95,7 @@ public class AppLoginRedisServiceImpl implements AppLoginRedisService {
@Override
public
void
refreshLoginInfo
(
String
oldToken
,
String
username
,
JwtToken
newJwtToken
)
{
// 获取缓存的登录用户信息
Login
Sys
UserRedisVo
loginSysUserRedisVo
=
getLoginSysUserRedisVo
(
username
);
LoginUserRedisVo
loginSysUserRedisVo
=
getLoginSysUserRedisVo
(
username
);
// 删除之前的token信息
deleteLoginInfo
(
oldToken
,
username
);
// 缓存登录信息
...
...
@@ -102,19 +103,19 @@ public class AppLoginRedisServiceImpl implements AppLoginRedisService {
}
@Override
public
Login
Sys
UserRedisVo
getLoginSysUserRedisVo
(
String
username
)
{
public
LoginUserRedisVo
getLoginSysUserRedisVo
(
String
username
)
{
if
(
StringUtils
.
isBlank
(
username
))
{
throw
new
IllegalArgumentException
(
"username不能为空"
);
}
return
(
Login
Sys
UserRedisVo
)
redisTemplate
.
opsForValue
().
get
(
String
.
format
(
AppLoginRedisKey
.
LOGIN_USER
,
username
));
return
(
LoginUserRedisVo
)
redisTemplate
.
opsForValue
().
get
(
String
.
format
(
AppLoginRedisKey
.
LOGIN_USER
,
username
));
}
@Override
public
Login
Sys
UserVo
getLoginSysUserVo
(
String
username
)
{
public
LoginUserVo
getLoginSysUserVo
(
String
username
)
{
if
(
StringUtils
.
isBlank
(
username
))
{
throw
new
IllegalArgumentException
(
"username不能为空"
);
}
Login
Sys
UserRedisVo
userRedisVo
=
getLoginSysUserRedisVo
(
username
);
LoginUserRedisVo
userRedisVo
=
getLoginSysUserRedisVo
(
username
);
return
userRedisVo
;
}
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/cache/impl/MerchantLoginRedisServiceImpl.java
View file @
36121f3e
...
...
@@ -9,8 +9,8 @@ import io.geekidea.springbootplus.framework.shiro.convert.LoginSysUserVoConvert;
import
io.geekidea.springbootplus.framework.shiro.convert.ShiroMapstructConvert
;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.vo.JwtTokenRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserVo
;
import
io.geekidea.springbootplus.framework.util.ClientInfoUtil
;
import
io.geekidea.springbootplus.framework.util.HttpServletRequestUtil
;
import
org.apache.commons.codec.digest.DigestUtils
;
...
...
@@ -42,7 +42,7 @@ public class MerchantLoginRedisServiceImpl implements MerchantLoginRedisService
* username:num
*/
@Override
public
void
cacheLoginInfo
(
JwtToken
jwtToken
,
Login
Sys
UserVo
loginSysUserVo
)
{
public
void
cacheLoginInfo
(
JwtToken
jwtToken
,
LoginUserVo
loginSysUserVo
)
{
if
(
jwtToken
==
null
)
{
throw
new
IllegalArgumentException
(
"jwtToken不能为空"
);
}
...
...
@@ -60,13 +60,14 @@ public class MerchantLoginRedisServiceImpl implements MerchantLoginRedisService
// Redis缓存JWT Token信息
JwtTokenRedisVo
jwtTokenRedisVo
=
ShiroMapstructConvert
.
INSTANCE
.
jwtTokenToJwtTokenRedisVo
(
jwtToken
);
jwtTokenRedisVo
.
setUserId
(
loginSysUserVo
.
getId
());
// 用户客户端信息
ClientInfo
clientInfo
=
ClientInfoUtil
.
get
(
HttpServletRequestUtil
.
getRequest
());
// Redis缓存登录用户信息
// 将LoginSysUserVo对象复制到LoginSysUserRedisVo,使用mapstruct进行对象属性复制
Login
Sys
UserRedisVo
loginSysUserRedisVo
=
LoginSysUserVoConvert
.
INSTANCE
.
voToRedisVo
(
loginSysUserVo
);
LoginUserRedisVo
loginSysUserRedisVo
=
LoginSysUserVoConvert
.
INSTANCE
.
voToRedisVo
(
loginSysUserVo
);
loginSysUserRedisVo
.
setSalt
(
salt
);
loginSysUserRedisVo
.
setClientInfo
(
clientInfo
);
...
...
@@ -93,7 +94,7 @@ public class MerchantLoginRedisServiceImpl implements MerchantLoginRedisService
@Override
public
void
refreshLoginInfo
(
String
oldToken
,
String
username
,
JwtToken
newJwtToken
)
{
// 获取缓存的登录用户信息
Login
Sys
UserRedisVo
loginSysUserRedisVo
=
getLoginSysUserRedisVo
(
username
);
LoginUserRedisVo
loginSysUserRedisVo
=
getLoginSysUserRedisVo
(
username
);
// 删除之前的token信息
deleteLoginInfo
(
oldToken
,
username
);
// 缓存登录信息
...
...
@@ -101,19 +102,19 @@ public class MerchantLoginRedisServiceImpl implements MerchantLoginRedisService
}
@Override
public
Login
Sys
UserRedisVo
getLoginSysUserRedisVo
(
String
username
)
{
public
LoginUserRedisVo
getLoginSysUserRedisVo
(
String
username
)
{
if
(
StringUtils
.
isBlank
(
username
))
{
throw
new
IllegalArgumentException
(
"username不能为空"
);
}
return
(
Login
Sys
UserRedisVo
)
redisTemplate
.
opsForValue
().
get
(
String
.
format
(
MerchantLoginRedisKey
.
LOGIN_USER
,
username
));
return
(
LoginUserRedisVo
)
redisTemplate
.
opsForValue
().
get
(
String
.
format
(
MerchantLoginRedisKey
.
LOGIN_USER
,
username
));
}
@Override
public
Login
Sys
UserVo
getLoginSysUserVo
(
String
username
)
{
public
LoginUserVo
getLoginSysUserVo
(
String
username
)
{
if
(
StringUtils
.
isBlank
(
username
))
{
throw
new
IllegalArgumentException
(
"username不能为空"
);
}
Login
Sys
UserRedisVo
userRedisVo
=
getLoginSysUserRedisVo
(
username
);
LoginUserRedisVo
userRedisVo
=
getLoginSysUserRedisVo
(
username
);
return
userRedisVo
;
}
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/cache/impl/SysLoginRedisServiceImpl.java
View file @
36121f3e
...
...
@@ -25,8 +25,8 @@ import io.geekidea.springbootplus.framework.shiro.convert.LoginSysUserVoConvert;
import
io.geekidea.springbootplus.framework.shiro.convert.ShiroMapstructConvert
;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.vo.JwtTokenRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserVo
;
import
io.geekidea.springbootplus.framework.util.ClientInfoUtil
;
import
io.geekidea.springbootplus.framework.util.HttpServletRequestUtil
;
import
org.apache.commons.codec.digest.DigestUtils
;
...
...
@@ -65,7 +65,7 @@ public class SysLoginRedisServiceImpl implements SysLoginRedisService {
* username:num
*/
@Override
public
void
cacheLoginInfo
(
JwtToken
jwtToken
,
Login
Sys
UserVo
loginSysUserVo
)
{
public
void
cacheLoginInfo
(
JwtToken
jwtToken
,
LoginUserVo
loginSysUserVo
)
{
if
(
jwtToken
==
null
)
{
throw
new
IllegalArgumentException
(
"jwtToken不能为空"
);
}
...
...
@@ -84,12 +84,13 @@ public class SysLoginRedisServiceImpl implements SysLoginRedisService {
// Redis缓存JWT Token信息
JwtTokenRedisVo
jwtTokenRedisVo
=
ShiroMapstructConvert
.
INSTANCE
.
jwtTokenToJwtTokenRedisVo
(
jwtToken
);
jwtTokenRedisVo
.
setUserId
(
loginSysUserVo
.
getId
());
// 用户客户端信息
ClientInfo
clientInfo
=
ClientInfoUtil
.
get
(
HttpServletRequestUtil
.
getRequest
());
// Redis缓存登录用户信息
// 将LoginSysUserVo对象复制到LoginSysUserRedisVo,使用mapstruct进行对象属性复制
Login
Sys
UserRedisVo
loginSysUserRedisVo
=
LoginSysUserVoConvert
.
INSTANCE
.
voToRedisVo
(
loginSysUserVo
);
LoginUserRedisVo
loginSysUserRedisVo
=
LoginSysUserVoConvert
.
INSTANCE
.
voToRedisVo
(
loginSysUserVo
);
loginSysUserRedisVo
.
setSalt
(
salt
);
loginSysUserRedisVo
.
setClientInfo
(
clientInfo
);
...
...
@@ -116,7 +117,7 @@ public class SysLoginRedisServiceImpl implements SysLoginRedisService {
@Override
public
void
refreshLoginInfo
(
String
oldToken
,
String
username
,
JwtToken
newJwtToken
)
{
// 获取缓存的登录用户信息
Login
Sys
UserRedisVo
loginSysUserRedisVo
=
getLoginSysUserRedisVo
(
username
);
LoginUserRedisVo
loginSysUserRedisVo
=
getLoginSysUserRedisVo
(
username
);
// 删除之前的token信息
deleteLoginInfo
(
oldToken
,
username
);
// 缓存登录信息
...
...
@@ -124,19 +125,19 @@ public class SysLoginRedisServiceImpl implements SysLoginRedisService {
}
@Override
public
Login
Sys
UserRedisVo
getLoginSysUserRedisVo
(
String
username
)
{
public
LoginUserRedisVo
getLoginSysUserRedisVo
(
String
username
)
{
if
(
StringUtils
.
isBlank
(
username
))
{
throw
new
IllegalArgumentException
(
"username不能为空"
);
}
return
(
Login
Sys
UserRedisVo
)
redisTemplate
.
opsForValue
().
get
(
String
.
format
(
SysLoginRedisKey
.
LOGIN_USER
,
username
));
return
(
LoginUserRedisVo
)
redisTemplate
.
opsForValue
().
get
(
String
.
format
(
SysLoginRedisKey
.
LOGIN_USER
,
username
));
}
@Override
public
Login
Sys
UserVo
getLoginSysUserVo
(
String
username
)
{
public
LoginUserVo
getLoginSysUserVo
(
String
username
)
{
if
(
StringUtils
.
isBlank
(
username
))
{
throw
new
IllegalArgumentException
(
"username不能为空"
);
}
Login
Sys
UserRedisVo
userRedisVo
=
getLoginSysUserRedisVo
(
username
);
LoginUserRedisVo
userRedisVo
=
getLoginSysUserRedisVo
(
username
);
return
userRedisVo
;
}
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/convert/LoginSysUserVoConvert.java
View file @
36121f3e
...
...
@@ -16,8 +16,8 @@
package
io
.
geekidea
.
springbootplus
.
framework
.
shiro
.
convert
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserVo
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
...
...
@@ -38,6 +38,6 @@ public interface LoginSysUserVoConvert {
* @param loginSysUserVo
* @return
*/
Login
SysUserRedisVo
voToRedisVo
(
LoginSys
UserVo
loginSysUserVo
);
Login
UserRedisVo
voToRedisVo
(
Login
UserVo
loginSysUserVo
);
}
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/jwt/JwtToken.java
View file @
36121f3e
...
...
@@ -43,6 +43,12 @@ public class JwtToken implements HostAuthenticationToken {
* 登录ip
*/
private
String
host
;
/**
* 登录用户ID
*/
private
Long
userId
;
/**
* 登录用户名称
*/
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/jwt/realm/JwtRealmMerchant.java
View file @
36121f3e
...
...
@@ -18,7 +18,7 @@ package io.geekidea.springbootplus.framework.shiro.jwt.realm;
import
io.geekidea.springbootplus.framework.shiro.cache.MerchantLoginRedisService
;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserRedisVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.SetUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -73,7 +73,7 @@ public class JwtRealmMerchant extends AuthorizingRealm {
// 获取username
String
username
=
jwtToken
.
getUsername
();
// 获取登录用户角色权限信息
Login
Sys
UserRedisVo
loginSysUserRedisVo
=
merchantLoginRedisService
.
getLoginSysUserRedisVo
(
username
);
LoginUserRedisVo
loginSysUserRedisVo
=
merchantLoginRedisService
.
getLoginSysUserRedisVo
(
username
);
SimpleAuthorizationInfo
authorizationInfo
=
new
SimpleAuthorizationInfo
();
// 设置角色
authorizationInfo
.
setRoles
(
SetUtils
.
hashSet
(
loginSysUserRedisVo
.
getRoleCode
()));
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/jwt/realm/JwtRealmSystem.java
View file @
36121f3e
...
...
@@ -18,7 +18,7 @@ package io.geekidea.springbootplus.framework.shiro.jwt.realm;
import
io.geekidea.springbootplus.framework.shiro.cache.SysLoginRedisService
;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserRedisVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.SetUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -69,7 +69,7 @@ public class JwtRealmSystem extends AuthorizingRealm {
// 获取username
String
username
=
jwtToken
.
getUsername
();
// 获取登录用户角色权限信息
Login
Sys
UserRedisVo
loginSysUserRedisVo
=
sysLoginRedisService
.
getLoginSysUserRedisVo
(
username
);
LoginUserRedisVo
loginSysUserRedisVo
=
sysLoginRedisService
.
getLoginSysUserRedisVo
(
username
);
SimpleAuthorizationInfo
authorizationInfo
=
new
SimpleAuthorizationInfo
();
// 设置角色
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/vo/JwtTokenRedisVo.java
View file @
36121f3e
...
...
@@ -39,6 +39,12 @@ public class JwtTokenRedisVo implements Serializable {
* 登录ip
*/
private
String
host
;
/**
* 登录用户ID
*/
private
Long
userId
;
/**
* 登录用户名称
*/
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/vo/Login
Sys
UserRedisVo.java
→
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/vo/LoginUserRedisVo.java
View file @
36121f3e
...
...
@@ -30,7 +30,7 @@ import lombok.experimental.Accessors;
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
Login
SysUserRedisVo
extends
LoginSys
UserVo
{
public
class
Login
UserRedisVo
extends
Login
UserVo
{
private
static
final
long
serialVersionUID
=
-
3858850188055605806L
;
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/vo/Login
Sys
UserVo.java
→
framework/src/main/java/io/geekidea/springbootplus/framework/shiro/vo/LoginUserVo.java
View file @
36121f3e
...
...
@@ -33,7 +33,7 @@ import java.util.Set;
**/
@Data
@Accessors
(
chain
=
true
)
public
class
Login
Sys
UserVo
implements
Serializable
{
public
class
LoginUserVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1758338570596088158L
;
...
...
framework/src/main/java/io/geekidea/springbootplus/framework/util/LoginUtil.java
View file @
36121f3e
...
...
@@ -18,7 +18,7 @@ package io.geekidea.springbootplus.framework.util;
import
io.geekidea.springbootplus.framework.shiro.util.JwtTokenUtil
;
import
io.geekidea.springbootplus.framework.shiro.util.JwtUtil
;
import
io.geekidea.springbootplus.framework.shiro.vo.Login
Sys
UserRedisVo
;
import
io.geekidea.springbootplus.framework.shiro.vo.LoginUserRedisVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.data.redis.core.RedisTemplate
;
...
...
@@ -47,7 +47,7 @@ public class LoginUtil {
*
* @return
*/
public
static
Login
Sys
UserRedisVo
getLoginSysUserRedisVo
()
{
public
static
LoginUserRedisVo
getLoginSysUserRedisVo
()
{
// 获取当前登录用户
String
token
=
JwtTokenUtil
.
getToken
();
String
username
=
JwtUtil
.
getUsername
(
token
);
...
...
@@ -56,7 +56,7 @@ public class LoginUtil {
}
// return (LoginSysUserRedisVo) redisTemplate.opsForValue().get(String.format(CommonRedisKey.LOGIN_USER, username));
Login
SysUserRedisVo
loginSysUserRedisVo
=
new
LoginSys
UserRedisVo
();
Login
UserRedisVo
loginSysUserRedisVo
=
new
Login
UserRedisVo
();
loginSysUserRedisVo
.
setUsername
(
username
);
return
loginSysUserRedisVo
;
}
...
...
@@ -67,7 +67,7 @@ public class LoginUtil {
* @return
*/
public
static
Long
getUserId
()
{
Login
Sys
UserRedisVo
loginSysUserRedisVo
=
getLoginSysUserRedisVo
();
LoginUserRedisVo
loginSysUserRedisVo
=
getLoginSysUserRedisVo
();
if
(
loginSysUserRedisVo
==
null
)
{
return
null
;
}
...
...
@@ -80,7 +80,7 @@ public class LoginUtil {
* @return
*/
public
static
String
getUsername
()
{
Login
Sys
UserRedisVo
loginSysUserRedisVo
=
getLoginSysUserRedisVo
();
LoginUserRedisVo
loginSysUserRedisVo
=
getLoginSysUserRedisVo
();
if
(
loginSysUserRedisVo
==
null
)
{
return
null
;
}
...
...
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