Search in sources :

Example 1 with LoginUserDetail

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);
}
Also used : LoginUserDetail(com.wayn.mobile.framework.security.LoginUserDetail) UsernamePasswordAuthenticationToken(org.springframework.security.authentication.UsernamePasswordAuthenticationToken) WebAuthenticationDetailsSource(org.springframework.security.web.authentication.WebAuthenticationDetailsSource)

Example 2 with LoginUserDetail

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()));
}
Also used : LoginUserDetail(com.wayn.mobile.framework.security.LoginUserDetail) SneakyThrows(lombok.SneakyThrows)

Example 3 with LoginUserDetail

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);
}
Also used : BusinessException(com.wayn.common.exception.BusinessException) LoginUserDetail(com.wayn.mobile.framework.security.LoginUserDetail) Member(com.wayn.common.core.domain.shop.Member)

Example 4 with LoginUserDetail

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));
}
Also used : LoginUserDetail(com.wayn.mobile.framework.security.LoginUserDetail) LocalDate(java.time.LocalDate) Member(com.wayn.common.core.domain.shop.Member)

Example 5 with LoginUserDetail

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);
}
Also used : BusinessException(com.wayn.common.exception.BusinessException) LoginUserDetail(com.wayn.mobile.framework.security.LoginUserDetail) Member(com.wayn.common.core.domain.shop.Member)

Aggregations

LoginUserDetail (com.wayn.mobile.framework.security.LoginUserDetail)7 Member (com.wayn.common.core.domain.shop.Member)4 BusinessException (com.wayn.common.exception.BusinessException)3 SneakyThrows (lombok.SneakyThrows)2 UsernamePasswordAuthenticationToken (org.springframework.security.authentication.UsernamePasswordAuthenticationToken)2 QueryWrapper (com.baomidou.mybatisplus.core.conditions.query.QueryWrapper)1 LocalDate (java.time.LocalDate)1 TimerTask (java.util.TimerTask)1 BadCredentialsException (org.springframework.security.authentication.BadCredentialsException)1 DisabledException (org.springframework.security.authentication.DisabledException)1 Authentication (org.springframework.security.core.Authentication)1 UsernameNotFoundException (org.springframework.security.core.userdetails.UsernameNotFoundException)1 WebAuthenticationDetailsSource (org.springframework.security.web.authentication.WebAuthenticationDetailsSource)1