Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
SiEn
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
SiEn
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
Show 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