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

This commit is contained in:
OPGame 2019-09-23 20:14:04 +08:00
parent cfa0a1b5d3
commit 9a76de8092
7 changed files with 18 additions and 54 deletions

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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.

View File

@ -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();
}

View File

@ -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);
}

View File

@ -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) {
}
}