use of com.wayn.mobile.framework.security.LoginUserDetail in project waynboot-mall by wayn111.
the class JwtAuthenticationTokenFilter method doFilterInternal.
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
LoginUserDetail loginUser = tokenService.getLoginUser(request);
if (Objects.nonNull(loginUser) && Objects.isNull(SecurityContextHolder.getContext().getAuthentication())) {
tokenService.verifyToken(loginUser);
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
SecurityContextHolder.getContext().setAuthentication(authenticationToken);
}
chain.doFilter(request, response);
}
use of com.wayn.mobile.framework.security.LoginUserDetail in project waynboot-mall by wayn111.
the class LogoutSuccessHandlerImpl method onLogoutSuccess.
@SneakyThrows
@Override
public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
LoginUserDetail loginUser = tokenService.getLoginUser(request);
if (Objects.nonNull(loginUser)) {
// 删除用户缓存记录
tokenService.delLoginUser(loginUser.getToken());
}
// 设置状态码
response.setStatus(HttpStatus.OK.value());
// 将登录失败信息打包成json格式返回
response.setContentType("application/json;charset=UTF-8");
response.getWriter().print(JsonUtil.marshal(R.success()));
}
use of com.wayn.mobile.framework.security.LoginUserDetail in project waynboot-mall by wayn111.
the class UserController method uploadAvatar.
@PostMapping("uploadAvatar")
public R uploadAvatar(String avatar) {
LoginUserDetail loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
Member member = loginUser.getMember();
member.setAvatar(avatar);
boolean update = iMemberService.updateById(member);
if (!update) {
throw new BusinessException("上传头像失败");
}
loginUser.setMember(member);
tokenService.refreshToken(loginUser);
return R.result(true).add("userInfo", member);
}
use of com.wayn.mobile.framework.security.LoginUserDetail in project waynboot-mall by wayn111.
the class UserController method profile.
@PostMapping("profile")
public R profile(@RequestBody ProfileVO profileVO) {
String nickname = profileVO.getNickname();
Integer gender = profileVO.getGender();
String mobile = profileVO.getMobile();
String email = profileVO.getEmail();
LocalDate birthday = profileVO.getBirthday();
LoginUserDetail loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
Member member = loginUser.getMember();
if (StringUtils.isNotBlank(nickname)) {
member.setNickname(nickname);
}
if (Objects.nonNull(gender)) {
member.setGender(gender);
}
if (StringUtils.isNotBlank(mobile)) {
member.setMobile(mobile);
}
if (StringUtils.isNotBlank(email)) {
member.setEmail(email);
}
if (Objects.nonNull(birthday)) {
member.setBirthday(birthday);
}
loginUser.setMember(member);
tokenService.refreshToken(loginUser);
return R.result(iMemberService.updateById(member));
}
use of com.wayn.mobile.framework.security.LoginUserDetail in project waynboot-mall by wayn111.
the class UserController method updatePassword.
@PostMapping("updatePassword")
public R updatePassword(@RequestBody RegistryObj registryObj) {
if (!StringUtils.equalsIgnoreCase(registryObj.getPassword(), registryObj.getConfirmPassword())) {
return R.error(ReturnCodeEnum.USER_TWO_PASSWORD_NOT_SAME_ERROR);
}
String redisEmailCode = redisCache.getCacheObject(registryObj.getEmailKey());
// 判断邮箱验证码
if (registryObj.getEmailCode() == null || !redisEmailCode.equals(registryObj.getEmailCode().trim().toLowerCase())) {
return R.error(ReturnCodeEnum.USER_EMAIL_CODE_ERROR);
}
LoginUserDetail loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
Member member = loginUser.getMember();
member.setPassword(MobileSecurityUtils.encryptPassword(registryObj.getPassword()));
boolean update = iMemberService.updateById(member);
if (!update) {
throw new BusinessException("修改密码失败");
}
loginUser.setMember(member);
tokenService.refreshToken(loginUser);
return R.result(true).add("userInfo", member);
}
Aggregations