mirror of
https://gitee.com/gz-yami/mall4j.git
synced 2025-12-26 07:56:43 +08:00
登录不使用缓存,该缓存命中率不高,同时解决由于由于缓存引起密码无法更改的问题
This commit is contained in:
parent
cfa0a1b5d3
commit
9a76de8092
@ -60,14 +60,7 @@ public class YamiSysUserDetailsServiceImpl implements YamiUserDetailsService {
|
||||
@Override
|
||||
@SneakyThrows
|
||||
public YamiSysUser loadUserByUsername(String username) {
|
||||
YamiSysUser userDetails = cacheManagerUtil.getCache("yami_sys_user", username);
|
||||
if (userDetails != null) {
|
||||
return userDetails;
|
||||
}
|
||||
|
||||
userDetails = getUserDetails(username);
|
||||
cacheManagerUtil.putCache("yami_sys_user",username, userDetails);
|
||||
return userDetails;
|
||||
return getUserDetails(username);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -75,22 +75,15 @@ public class YamiUserServiceImpl implements YamiUserDetailsService {
|
||||
|
||||
String cacheKey = app.value() + StrUtil.COLON + bizUserId;
|
||||
|
||||
YamiUser yamiUser = cacheManagerUtil.getCache("yami_user", cacheKey);
|
||||
if (yamiUser != null) {
|
||||
return yamiUser;
|
||||
}
|
||||
|
||||
|
||||
User user = userMapper.getUserByBizUserId(app.value(), bizUserId);
|
||||
if (user == null) {
|
||||
throw new UsernameNotFoundExceptionBase("无法获取用户信息");
|
||||
}
|
||||
String name = StrUtil.isBlank(user.getRealName()) ? user.getNickName() : user.getRealName();
|
||||
yamiUser = new YamiUser(user.getUserId(), bizUserId, app.value(), user.getStatus() == 1);
|
||||
YamiUser yamiUser = new YamiUser(user.getUserId(), bizUserId, app.value(), user.getStatus() == 1);
|
||||
yamiUser.setName(name);
|
||||
yamiUser.setPic(user.getPic());
|
||||
|
||||
cacheManagerUtil.putCache("yami_sys_user",cacheKey, yamiUser);
|
||||
return yamiUser;
|
||||
}
|
||||
|
||||
|
||||
@ -63,10 +63,6 @@ public class SysLoginController {
|
||||
*/
|
||||
@PostMapping(value = "/sys/logout")
|
||||
public ResponseEntity<String> logout() {
|
||||
Cache cache = cacheManager.getCache("yami_sys_user");
|
||||
if (cache != null) {
|
||||
cache.evict(SecurityUtils.getSysUser().getUsername());
|
||||
}
|
||||
SecurityContextHolder.clearContext();
|
||||
return ResponseEntity.ok().build();
|
||||
}
|
||||
|
||||
@ -87,17 +87,17 @@ public class YamiTokenServices implements AuthorizationServerTokenServices, Reso
|
||||
OAuth2AccessToken existingAccessToken = tokenStore.getAccessToken(authentication);
|
||||
OAuth2RefreshToken refreshToken = null;
|
||||
// 如果有token,直接删除,更新token,避免出现缓存问题
|
||||
if (existingAccessToken != null) {
|
||||
if (existingAccessToken.getRefreshToken() != null) {
|
||||
refreshToken = existingAccessToken.getRefreshToken();
|
||||
// The token store could remove the refresh token when the
|
||||
// access token is removed, but we want to
|
||||
// be sure...
|
||||
tokenStore.removeRefreshToken(refreshToken);
|
||||
}
|
||||
tokenStore.removeAccessToken(existingAccessToken);
|
||||
|
||||
}
|
||||
// if (existingAccessToken != null) {
|
||||
// if (existingAccessToken.getRefreshToken() != null) {
|
||||
// refreshToken = existingAccessToken.getRefreshToken();
|
||||
// // The token store could remove the refresh token when the
|
||||
// // access token is removed, but we want to
|
||||
// // be sure...
|
||||
// tokenStore.removeRefreshToken(refreshToken);
|
||||
// }
|
||||
// tokenStore.removeAccessToken(existingAccessToken);
|
||||
//
|
||||
// }
|
||||
|
||||
// Only create a new refresh token if there wasn't an existing one
|
||||
// associated with an expired access token.
|
||||
|
||||
@ -185,10 +185,6 @@ public class SysUserController {
|
||||
return ResponseEntity.badRequest().body("当前用户不能删除");
|
||||
}
|
||||
sysUserService.deleteBatch(userIds,SecurityUtils.getSysUser().getShopId());
|
||||
// 删除缓存
|
||||
for (Long userId : userIds) {
|
||||
sysUserService.evictSysUserById(userId);
|
||||
}
|
||||
return ResponseEntity.ok().build();
|
||||
}
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ import com.yami.shop.sys.model.SysUser;
|
||||
* @author lgh
|
||||
*/
|
||||
public interface SysUserService extends IService<SysUser> {
|
||||
|
||||
|
||||
/**
|
||||
* 修改密码
|
||||
* @param userId 用户ID
|
||||
@ -32,8 +32,8 @@ public interface SysUserService extends IService<SysUser> {
|
||||
* @param user
|
||||
*/
|
||||
void saveUserAndUserRole(SysUser user);
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 更新用户与用户角色关系
|
||||
* @param user
|
||||
@ -60,10 +60,4 @@ public interface SysUserService extends IService<SysUser> {
|
||||
*/
|
||||
SysUser getSysUserById(Long userId);
|
||||
|
||||
/**
|
||||
* 根据用户id删除用户缓存信息
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
void evictSysUserById(Long userId);
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@ import java.util.Date;
|
||||
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService {
|
||||
|
||||
private SysUserRoleMapper sysUserRoleMapper;
|
||||
|
||||
|
||||
private SysUserMapper sysUserMapper;
|
||||
|
||||
@Override
|
||||
@ -52,11 +52,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@CacheEvict(cacheNames="sys_user",key="#user.userId")
|
||||
public void updateUserAndUserRole(SysUser user) {
|
||||
// 更新用户
|
||||
sysUserMapper.updateById(user);
|
||||
|
||||
|
||||
//先删除用户与角色关系
|
||||
sysUserRoleMapper.deleteByUserId(user.getUserId());
|
||||
|
||||
@ -86,14 +85,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
}
|
||||
|
||||
@Override
|
||||
@Cacheable(cacheNames="sys_user",key="#userId")
|
||||
public SysUser getSysUserById(Long userId) {
|
||||
return sysUserMapper.selectById(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@CacheEvict(cacheNames="sys_user",key="#userId")
|
||||
public void evictSysUserById(Long userId) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user