登录不使用缓存,该缓存命中率不高,同时解决由于由于缓存引起密码无法更改的问题

master
OPGame 7 years ago
parent cfa0a1b5d3
commit 9a76de8092

@ -60,14 +60,7 @@ public class YamiSysUserDetailsServiceImpl implements YamiUserDetailsService {
@Override @Override
@SneakyThrows @SneakyThrows
public YamiSysUser loadUserByUsername(String username) { public YamiSysUser loadUserByUsername(String username) {
YamiSysUser userDetails = cacheManagerUtil.getCache("yami_sys_user", username); return getUserDetails(username);
if (userDetails != null) {
return userDetails;
}
userDetails = getUserDetails(username);
cacheManagerUtil.putCache("yami_sys_user",username, userDetails);
return userDetails;
} }

@ -75,22 +75,15 @@ public class YamiUserServiceImpl implements YamiUserDetailsService {
String cacheKey = app.value() + StrUtil.COLON + bizUserId; 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); User user = userMapper.getUserByBizUserId(app.value(), bizUserId);
if (user == null) { if (user == null) {
throw new UsernameNotFoundExceptionBase("无法获取用户信息"); throw new UsernameNotFoundExceptionBase("无法获取用户信息");
} }
String name = StrUtil.isBlank(user.getRealName()) ? user.getNickName() : user.getRealName(); 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.setName(name);
yamiUser.setPic(user.getPic()); yamiUser.setPic(user.getPic());
cacheManagerUtil.putCache("yami_sys_user",cacheKey, yamiUser);
return yamiUser; return yamiUser;
} }

@ -63,10 +63,6 @@ public class SysLoginController {
*/ */
@PostMapping(value = "/sys/logout") @PostMapping(value = "/sys/logout")
public ResponseEntity<String> logout() { public ResponseEntity<String> logout() {
Cache cache = cacheManager.getCache("yami_sys_user");
if (cache != null) {
cache.evict(SecurityUtils.getSysUser().getUsername());
}
SecurityContextHolder.clearContext(); SecurityContextHolder.clearContext();
return ResponseEntity.ok().build(); return ResponseEntity.ok().build();
} }

@ -87,17 +87,17 @@ public class YamiTokenServices implements AuthorizationServerTokenServices, Reso
OAuth2AccessToken existingAccessToken = tokenStore.getAccessToken(authentication); OAuth2AccessToken existingAccessToken = tokenStore.getAccessToken(authentication);
OAuth2RefreshToken refreshToken = null; OAuth2RefreshToken refreshToken = null;
// 如果有token直接删除更新token避免出现缓存问题 // 如果有token直接删除更新token避免出现缓存问题
if (existingAccessToken != null) { // if (existingAccessToken != null) {
if (existingAccessToken.getRefreshToken() != null) { // if (existingAccessToken.getRefreshToken() != null) {
refreshToken = existingAccessToken.getRefreshToken(); // refreshToken = existingAccessToken.getRefreshToken();
// The token store could remove the refresh token when the // // The token store could remove the refresh token when the
// access token is removed, but we want to // // access token is removed, but we want to
// be sure... // // be sure...
tokenStore.removeRefreshToken(refreshToken); // tokenStore.removeRefreshToken(refreshToken);
} // }
tokenStore.removeAccessToken(existingAccessToken); // tokenStore.removeAccessToken(existingAccessToken);
//
} // }
// Only create a new refresh token if there wasn't an existing one // Only create a new refresh token if there wasn't an existing one
// associated with an expired access token. // associated with an expired access token.

@ -185,10 +185,6 @@ public class SysUserController {
return ResponseEntity.badRequest().body("当前用户不能删除"); return ResponseEntity.badRequest().body("当前用户不能删除");
} }
sysUserService.deleteBatch(userIds,SecurityUtils.getSysUser().getShopId()); sysUserService.deleteBatch(userIds,SecurityUtils.getSysUser().getShopId());
// 删除缓存
for (Long userId : userIds) {
sysUserService.evictSysUserById(userId);
}
return ResponseEntity.ok().build(); return ResponseEntity.ok().build();
} }

@ -60,10 +60,4 @@ public interface SysUserService extends IService<SysUser> {
*/ */
SysUser getSysUserById(Long userId); SysUser getSysUserById(Long userId);
/**
* id
* @param userId
* @return
*/
void evictSysUserById(Long userId);
} }

@ -52,7 +52,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@CacheEvict(cacheNames="sys_user",key="#user.userId")
public void updateUserAndUserRole(SysUser user) { public void updateUserAndUserRole(SysUser user) {
// 更新用户 // 更新用户
sysUserMapper.updateById(user); sysUserMapper.updateById(user);
@ -86,14 +85,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
} }
@Override @Override
@Cacheable(cacheNames="sys_user",key="#userId")
public SysUser getSysUserById(Long userId) { public SysUser getSysUserById(Long userId) {
return sysUserMapper.selectById(userId); return sysUserMapper.selectById(userId);
} }
@Override
@CacheEvict(cacheNames="sys_user",key="#userId")
public void evictSysUserById(Long userId) {
}
} }

Loading…
Cancel
Save