From 752d6687fc3c3b2b3dbcb2bdb422ff470a048d08 Mon Sep 17 00:00:00 2001 From: dwusiq Date: Sat, 13 Jan 2024 18:38:00 +0800 Subject: [PATCH 01/14] The paging query interface for sharing returns a page object --- .../officialsite/sharing/SharingController.java | 3 --- .../officialsite/sharing/SharingRepository.java | 11 ++++++++--- .../dl/officialsite/sharing/SharingService.java | 16 +++++----------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/dl/officialsite/sharing/SharingController.java b/src/main/java/com/dl/officialsite/sharing/SharingController.java index 5680627a..3f3f690d 100644 --- a/src/main/java/com/dl/officialsite/sharing/SharingController.java +++ b/src/main/java/com/dl/officialsite/sharing/SharingController.java @@ -58,9 +58,6 @@ public BaseResponse deleteSharing(@RequestParam("shareId") long shareId, @Reque @GetMapping("all") public BaseResponse loadSharing(@RequestParam(value = "pageNo",defaultValue = "1") int pageNo, @RequestParam(value = "pageSize",defaultValue = "20") int pageSize){ - -// Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by("date").descending().and(Sort.by("time").descending()).and(Sort.by("id").descending())); -// return BaseResponse.successWithData(this.sharingService.findAll(pageable)); return BaseResponse.successWithData(this.sharingService.findAll(pageNo,pageSize)); } diff --git a/src/main/java/com/dl/officialsite/sharing/SharingRepository.java b/src/main/java/com/dl/officialsite/sharing/SharingRepository.java index 6678763c..a4bbf481 100644 --- a/src/main/java/com/dl/officialsite/sharing/SharingRepository.java +++ b/src/main/java/com/dl/officialsite/sharing/SharingRepository.java @@ -1,5 +1,7 @@ package com.dl.officialsite.sharing; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Query; @@ -16,13 +18,16 @@ public interface SharingRepository extends JpaRepository, JpaSpecif int loadAllCount(); @Query(value = "select * from share where member_address = :memberAddress limit :offset, :limit", nativeQuery = true) - List findAllSharesByUidPaged(@Param("memberAddress") String memberAddress, @Param("offset") int offset, @Param("limit") int limit); + List findAllSharesByUidPaged(@Param("memberAddress") String memberAddress, @Param("offset") int offset, + @Param("limit") int limit); @Query(value = "select count(*) from share where member_address = :memberAddress", nativeQuery = true) int loadCountByUid(@Param("memberAddress") String memberAddress); - List findByIdInAndRewardStatus(List id, Integer rewardStatus); - + // @Query(value = "SELECT * FROM share by STR_TO_DATE(date,'%Y/%m/%d') desc,time + // desc,id desc", countQuery = "SELECT count(*) FROM share", nativeQuery = true) + @Query(value = "SELECT * FROM share order by STR_TO_DATE(date,'%Y/%m/%d') desc,time desc,id desc", countQuery = "SELECT count(*) FROM share", nativeQuery = true) + Page findAllByPage(Pageable pageable); } diff --git a/src/main/java/com/dl/officialsite/sharing/SharingService.java b/src/main/java/com/dl/officialsite/sharing/SharingService.java index 02cba97a..011990ca 100644 --- a/src/main/java/com/dl/officialsite/sharing/SharingService.java +++ b/src/main/java/com/dl/officialsite/sharing/SharingService.java @@ -12,7 +12,9 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; @@ -136,16 +138,8 @@ public PagedList loadSharingByUser(String memberAddress, int pageNo, int pageSiz return resp; } - public PagedList findAll(int pageNo, int pageSize) { - int offset = (pageNo - 1)*pageSize; - int totalCount = this.sharingRepository.loadAllCount(); - int totalPages =(totalCount + pageSize - 1) / pageSize; - List items = this.sharingRepository.findAllSharesPaged(offset, pageSize); - - // SharingByUserResp resp = new SharingByUserResp(); - PagedList resp = new PagedList(items ,new Pagination(totalCount, totalPages, pageNo, items.size(), pageNo < totalPages)); - - - return resp; + public Page findAll(int pageNo, int pageSize) { + Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by("date").descending().and(Sort.by("time").descending()).and(Sort.by("id").descending())); + return this.sharingRepository.findAllByPage(pageable); } } From 1519c65d09a87fc17cdc3c13e2c42a7557703375 Mon Sep 17 00:00:00 2001 From: dwusiq Date: Sat, 13 Jan 2024 21:57:07 +0800 Subject: [PATCH 02/14] Support deleting member --- .gitignore | 3 + .../officialsite/common/enums/CodeEnums.java | 4 +- .../application/ApplicationRepository.java | 11 +- .../officialsite/member/MemberController.java | 8 + .../dl/officialsite/member/MemberManager.java | 21 ++ .../dl/officialsite/member/MemberService.java | 82 +++++--- .../sharing/SharingController.java | 3 +- .../com/dl/officialsite/team/TeamService.java | 193 +++++++++--------- .../team/teammember/TeamMemberRepository.java | 3 + src/main/resources/application.yml | 10 +- 10 files changed, 197 insertions(+), 141 deletions(-) create mode 100644 src/main/java/com/dl/officialsite/member/MemberManager.java diff --git a/.gitignore b/.gitignore index c5955f24..0a522bf3 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,6 @@ README-Local.md /dist wallet/% node/* +/gradleRepository +/bin/main +/.vscode/launch.json diff --git a/src/main/java/com/dl/officialsite/common/enums/CodeEnums.java b/src/main/java/com/dl/officialsite/common/enums/CodeEnums.java index 86bf370a..dfab9bd7 100644 --- a/src/main/java/com/dl/officialsite/common/enums/CodeEnums.java +++ b/src/main/java/com/dl/officialsite/common/enums/CodeEnums.java @@ -35,7 +35,9 @@ public enum CodeEnums { SHARING_LOCKED("5003", "Sharing locked, please contact admin to unlock"), - NOT_DELETE_TEAM("1019", "not delete admin team"); + NOT_DELETE_TEAM("1019", "not delete admin team"), + + INVALID_MEMBER("1023", "member is invalid"); diff --git a/src/main/java/com/dl/officialsite/hiring/application/ApplicationRepository.java b/src/main/java/com/dl/officialsite/hiring/application/ApplicationRepository.java index 968e75af..bdf414e0 100644 --- a/src/main/java/com/dl/officialsite/hiring/application/ApplicationRepository.java +++ b/src/main/java/com/dl/officialsite/hiring/application/ApplicationRepository.java @@ -1,16 +1,17 @@ package com.dl.officialsite.hiring.application; -import com.dl.officialsite.hiring.Hiring; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; -import java.util.List; - - public interface ApplicationRepository extends JpaRepository, - JpaSpecificationExecutor { + JpaSpecificationExecutor { Application findByMemberIdAndHiringId(Long memberId, Long hireId); + + @Modifying + @Query(value ="delete from application where memeber_id = :member_id", nativeQuery = true) + void deleteByMemberId(@Param("member_id")Long memberId); } diff --git a/src/main/java/com/dl/officialsite/member/MemberController.java b/src/main/java/com/dl/officialsite/member/MemberController.java index 42a5952b..4ff9f43e 100644 --- a/src/main/java/com/dl/officialsite/member/MemberController.java +++ b/src/main/java/com/dl/officialsite/member/MemberController.java @@ -182,6 +182,14 @@ public BaseResponse updateMemberByAddress(@RequestParam String address, @Request } } + + @DeleteMapping() + public BaseResponse deleteMember(@RequestParam String address) { + memberService.deleteMember(address); + return BaseResponse.success(); + } + + //todo query // findByNickName diff --git a/src/main/java/com/dl/officialsite/member/MemberManager.java b/src/main/java/com/dl/officialsite/member/MemberManager.java new file mode 100644 index 00000000..08d250c9 --- /dev/null +++ b/src/main/java/com/dl/officialsite/member/MemberManager.java @@ -0,0 +1,21 @@ +package com.dl.officialsite.member; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +public class MemberManager { + + @Autowired + private MemberRepository memberRepository; + + public Member getMemberByAddress(String address) { + Optional member = memberRepository.findByAddress(address); + if (member.isPresent()) { + return member.get(); + } + return null; + } +} diff --git a/src/main/java/com/dl/officialsite/member/MemberService.java b/src/main/java/com/dl/officialsite/member/MemberService.java index 32a76ff0..d8bce6f3 100644 --- a/src/main/java/com/dl/officialsite/member/MemberService.java +++ b/src/main/java/com/dl/officialsite/member/MemberService.java @@ -1,8 +1,13 @@ package com.dl.officialsite.member; import com.dl.officialsite.common.base.BaseResponse; +import com.dl.officialsite.common.enums.CodeEnums; +import com.dl.officialsite.common.exception.BizException; +import com.dl.officialsite.common.utils.UserSecurityUtils; +import com.dl.officialsite.hiring.application.ApplicationRepository; import com.dl.officialsite.team.Team; import com.dl.officialsite.team.TeamRepository; +import com.dl.officialsite.team.TeamService; import com.dl.officialsite.team.teammember.TeamMember; import com.dl.officialsite.team.teammember.TeamMemberRepository; import org.slf4j.Logger; @@ -11,45 +16,45 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import javax.persistence.PersistenceException; +import javax.transaction.Transactional; + +import static com.dl.officialsite.common.enums.CodeEnums.INVALID_MEMBER; + import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.Optional; @Service public class MemberService { - @Autowired private MemberRepository memberRepository; @Autowired private TeamMemberRepository teamMemberRepository; @Autowired private TeamRepository teamRepository; + @Autowired + private TeamService teamService; + @Autowired + private ApplicationRepository applicationRepository; + @Autowired + private MemberManager memberManager; public static final Logger logger = LoggerFactory.getLogger(MemberController.class); - public Member getMemberByAddress(String address) { - Optional member = memberRepository.findByAddress(address); - if(member.isPresent()) { - return member.get(); - } - return null; - } - - public MemberWithTeam getMemberWithTeamInfoByAddress(String address) { Optional member = memberRepository.findByAddress(address); - if(member.isPresent()) { + if (member.isPresent()) { MemberWithTeam memberWithTeam = new MemberWithTeam(); BeanUtils.copyProperties(member.get(), memberWithTeam); - ArrayList teams = new ArrayList(); + ArrayList teams = new ArrayList(); List teamMembers = teamMemberRepository.findByMemberIdAndStatus(member.get().getId(), 0); teamMembers.stream().forEach(teamMember -> { Team team = teamRepository.findById(teamMember.getTeamId()).get(); - if(team.getTeamName().equals("Dapp-Learning DAO co-founders")){ + if (team.getTeamName().equals("Dapp-Learning DAO co-founders")) { memberWithTeam.setAdmin(true); } teams.add(team); @@ -61,10 +66,10 @@ public MemberWithTeam getMemberWithTeamInfoByAddress(String address) { } public MemberVo save(Member member) { - memberRepository.save(member); - MemberVo memberVo = new MemberVo(); + memberRepository.save(member); + MemberVo memberVo = new MemberVo(); BeanUtils.copyProperties(member, memberVo); - return memberVo; + return memberVo; } @@ -76,17 +81,40 @@ public MemberVo getMemberPrivacyInfo(String address) { MemberVo memberVo = new MemberVo(); BeanUtils.copyProperties(member.get(), memberVo); - return memberVo; + return memberVo; + + } + // } catch (DataIntegrityViolationException e) { + // + // String mostSpecificCauseMessage = e.getMostSpecificCause().getMessage(); + // if (e.getCause() instanceof ConstraintViolationException) { + // String name = ((ConstraintViolationException) + // e.getCause()).getConstraintName(); + // logger.info("Encountered ConstraintViolationException, details: " + + // mostSpecificCauseMessage + "constraintName: "+ name); + // } + // return BaseResponse.failWithReason("1000", mostSpecificCauseMessage); + // } + + @Transactional(rollbackOn = Exception.class) + public void deleteMember(String memberAddress) { + // check address + Member member = this.memberManager.getMemberByAddress(memberAddress); + if (Objects.isNull(member)) { + throw new BizException(INVALID_MEMBER.getCode(), INVALID_MEMBER.getMsg()); + } + // check supper admin + String address = UserSecurityUtils.getUserLogin().getAddress(); + if (!teamService.checkMemberIsSuperAdmin(address)) { + throw new BizException(CodeEnums.NOT_THE_ADMIN.getCode(), + CodeEnums.NOT_THE_ADMIN.getMsg()); + } + + // delete + teamMemberRepository.deleteByMemberId(member.getId()); + applicationRepository.deleteByMemberId(member.getId()); + memberRepository.deleteById(member.getId()); } -// } catch (DataIntegrityViolationException e) { -// -// String mostSpecificCauseMessage = e.getMostSpecificCause().getMessage(); -// if (e.getCause() instanceof ConstraintViolationException) { -// String name = ((ConstraintViolationException) e.getCause()).getConstraintName(); -// logger.info("Encountered ConstraintViolationException, details: " + mostSpecificCauseMessage + "constraintName: "+ name); -// } -// return BaseResponse.failWithReason("1000", mostSpecificCauseMessage); -// } } diff --git a/src/main/java/com/dl/officialsite/sharing/SharingController.java b/src/main/java/com/dl/officialsite/sharing/SharingController.java index 3f3f690d..255e9e24 100644 --- a/src/main/java/com/dl/officialsite/sharing/SharingController.java +++ b/src/main/java/com/dl/officialsite/sharing/SharingController.java @@ -72,8 +72,7 @@ public BaseResponse querySharing(@RequestParam("shareId") long shareId){ } /** - * 查看用户的分享 - */ + */ @GetMapping("user") public BaseResponse loadSharingByUser(@RequestParam("memberAddress") String memberAddress, @RequestParam(value = "pageNo",defaultValue = "1") int pageNo, diff --git a/src/main/java/com/dl/officialsite/team/TeamService.java b/src/main/java/com/dl/officialsite/team/TeamService.java index 1acab245..47f85394 100644 --- a/src/main/java/com/dl/officialsite/team/TeamService.java +++ b/src/main/java/com/dl/officialsite/team/TeamService.java @@ -1,14 +1,13 @@ package com.dl.officialsite.team; - import com.dl.officialsite.common.constants.Constants; import com.dl.officialsite.common.enums.CodeEnums; import com.dl.officialsite.common.exception.BizException; import com.dl.officialsite.login.enums.UserRoleEnum; import com.dl.officialsite.mail.EmailService; import com.dl.officialsite.member.Member; +import com.dl.officialsite.member.MemberManager; import com.dl.officialsite.member.MemberRepository; -import com.dl.officialsite.member.MemberService; import com.dl.officialsite.team.teammember.TeamMember; import com.dl.officialsite.team.teammember.TeamMemberRepository; import com.dl.officialsite.team.vo.TeamMemberApproveVO; @@ -58,17 +57,15 @@ public class TeamService { @Autowired private EmailService emailService; - @Autowired - private MemberService memberService; - + private MemberManager memberManager; @Transactional public Team add(Team team) { - - Member member = memberService.getMemberByAddress(team.getAdministrator()); - if(member==null) { - throw new BizException(CodeEnums.NOT_FOUND_MEMBER.getCode(),CodeEnums.NOT_FOUND_MEMBER.getMsg() ); + // check address + Member member = this.memberManager.getMemberByAddress(team.getAdministrator()); + if (member == null) { + throw new BizException(CodeEnums.NOT_FOUND_MEMBER.getCode(), CodeEnums.NOT_FOUND_MEMBER.getMsg()); } teamRepository.save(team); TeamMember teamMember = new TeamMember(); @@ -81,26 +78,24 @@ public Team add(Team team) { } - public List getTeamWithMembersByTeamNameAndStatus(String teamName , int status) { - //find team + public List getTeamWithMembersByTeamNameAndStatus(String teamName, int status) { + // find team Specification queryParam = new Specification() { @Override public javax.persistence.criteria.Predicate toPredicate( - Root root, - CriteriaQuery criteriaQuery, - CriteriaBuilder criteriaBuilder) { + Root root, + CriteriaQuery criteriaQuery, + CriteriaBuilder criteriaBuilder) { List predicates = new ArrayList<>(); if (teamName != null) { predicates.add(criteriaBuilder.like(root.get("teamName"), - "%" + teamName + "%")); + "%" + teamName + "%")); } return criteriaBuilder.and(predicates.toArray( - new javax.persistence.criteria.Predicate[predicates.size()])); + new javax.persistence.criteria.Predicate[predicates.size()])); } }; - - List teamsWithMembers = new ArrayList<>(); List teams = teamRepository.findAll(queryParam); @@ -110,55 +105,54 @@ public javax.persistence.criteria.Predicate toPredicate( BeanUtils.copyProperties(team, teamsMembersVo); List memberIds = teamMemberRepository.findByTeamIdAndStatus(team.getId(), status); - List members = memberRepository.findByIdIn(memberIds); + List members = memberRepository.findByIdIn(memberIds); teamsMembersVo.setMembers(members); teamsWithMembers.add(teamsMembersVo); }); return teamsWithMembers; } - - public Page getAllTeamWithMembers(Pageable pageable) { - Page teamsPage = teamRepository.findAll(pageable); - List teams = teamsPage.getContent(); + Page teamsPage = teamRepository.findAll(pageable); + List teams = teamsPage.getContent(); List teamsWithMembers = new ArrayList<>(); teams.stream().forEach(team -> { TeamsWithMembers teamsMembersVo = new TeamsWithMembers(); BeanUtils.copyProperties(team, teamsMembersVo); - List memberIds = teamMemberRepository.findAll().stream().map(x->x.getMemberId()).collect(Collectors.toList()); - List members = memberRepository.findByIdIn(memberIds); + List memberIds = teamMemberRepository.findAll().stream().map(x -> x.getMemberId()) + .collect(Collectors.toList()); + List members = memberRepository.findByIdIn(memberIds); teamsMembersVo.setMembers(members); teamsWithMembers.add(teamsMembersVo); }); - return new PageImpl<>(teamsWithMembers, pageable, teamsWithMembers.size() ); + return new PageImpl<>(teamsWithMembers, pageable, teamsWithMembers.size()); } @Transactional(rollbackOn = Exception.class) public void join(TeamMemberJoinVO teamMember) { Optional optional = teamMemberRepository.findByTeamAndMember( - teamMember.getTeamId(), teamMember.getMemberId()); + teamMember.getTeamId(), teamMember.getMemberId()); // refactor if (optional.isPresent()) { TeamMember teamMember2 = optional.get(); - //already apply + // already apply if (teamMember2.getStatus() == Constants.REQUEST_TEAM) { throw new BizException(CodeEnums.MEMBER_ALREADY_REQUEST_TEAM.getCode(), - CodeEnums.MEMBER_ALREADY_REQUEST_TEAM.getMsg()); + CodeEnums.MEMBER_ALREADY_REQUEST_TEAM.getMsg()); } if (teamMember2.getStatus() == Constants.IN_TEAM) { throw new BizException(CodeEnums.MEMBER_ALREADY_IN_TEAM.getCode(), CodeEnums.MEMBER_ALREADY_IN_TEAM.getMsg()); } - //removed or rejected before + // removed or rejected before teamMember2.setStatus(Constants.REQUEST_TEAM); teamMemberRepository.save(teamMember2); - //发送邮件 + // 发送邮件 Team team = teamRepository.findById(teamMember.getTeamId()).get(); String administratorAddress = team.getAdministrator(); if (!ObjectUtils.isEmpty(administratorAddress) || !"".equals(administratorAddress)) { @@ -166,7 +160,7 @@ public void join(TeamMemberJoinVO teamMember) { if (admin.isPresent()) { Member member1 = admin.get(); String email = member1.getEmail(); - String subject = team.getTeamName() + "团队新成员"+ member1.getNickName()+"加入申请"; + String subject = team.getTeamName() + "团队新成员" + member1.getNickName() + "加入申请"; String content = "点击此链接去处理" + "https://dapplearning.org/team/admin"; List mailAddress = new ArrayList<>(); mailAddress.add(email); @@ -174,19 +168,19 @@ public void join(TeamMemberJoinVO teamMember) { emailService.memberJoinTeam(mailAddress, subject, content); } else { throw new BizException(CodeEnums.TEAM_ADMIN_NOT_EXIST.getCode(), - CodeEnums.TEAM_ADMIN_NOT_EXIST.getMsg()); + CodeEnums.TEAM_ADMIN_NOT_EXIST.getMsg()); } } else { throw new BizException(CodeEnums.TEAM_ADMIN_NOT_EXIST.getCode(), - CodeEnums.TEAM_ADMIN_NOT_EXIST.getMsg()); + CodeEnums.TEAM_ADMIN_NOT_EXIST.getMsg()); } } else { TeamMember teamMember1 = new TeamMember(); BeanUtils.copyProperties(teamMember, teamMember1); teamMember1.setStatus(Constants.REQUEST_TEAM); teamMemberRepository.save(teamMember1); - //发送邮件 + // 发送邮件 Team team = teamRepository.findById(teamMember.getTeamId()).get(); String administratorAddress = team.getAdministrator(); if (!ObjectUtils.isEmpty(administratorAddress) || !"".equals(administratorAddress)) { @@ -194,7 +188,7 @@ public void join(TeamMemberJoinVO teamMember) { if (admin.isPresent()) { Member member1 = admin.get(); String email = member1.getEmail(); - String subject = team.getTeamName() + "团队新成员"+ member1.getNickName()+"加入申请"; + String subject = team.getTeamName() + "团队新成员" + member1.getNickName() + "加入申请"; String content = "点击此链接去处理" + "https://dapplearning.org/team/admin"; List mailAddress = new ArrayList<>(); mailAddress.add(email); @@ -202,12 +196,12 @@ public void join(TeamMemberJoinVO teamMember) { emailService.memberJoinTeam(mailAddress, subject, content); } else { throw new BizException(CodeEnums.TEAM_ADMIN_NOT_EXIST.getCode(), - CodeEnums.TEAM_ADMIN_NOT_EXIST.getMsg()); + CodeEnums.TEAM_ADMIN_NOT_EXIST.getMsg()); } } else { throw new BizException(CodeEnums.TEAM_ADMIN_NOT_EXIST.getCode(), - CodeEnums.TEAM_ADMIN_NOT_EXIST.getMsg()); + CodeEnums.TEAM_ADMIN_NOT_EXIST.getMsg()); } } @@ -220,7 +214,7 @@ public void approve(TeamMemberApproveVO teamMemberApproveVO) { List teamMembers = new ArrayList<>(); memberIds.stream().forEach(memberId -> { Optional optional = teamMemberRepository.findByTeamAndMember( - teamMemberApproveVO.getTeamId(), memberId); + teamMemberApproveVO.getTeamId(), memberId); if (optional.isPresent()) { TeamMember teamMember = optional.get(); teamMember.setStatus(teamMemberApproveVO.getStatus()); @@ -233,67 +227,65 @@ public void approve(TeamMemberApproveVO teamMemberApproveVO) { teamMemberRepository.saveAll(teamMembers); } - public void exit(TeamMemberJoinVO teamMember, String address) { - Optional member = memberRepository.findById(teamMember.getMemberId()); - if(member.isPresent() ) { - // only self or admin - if (checkMemberIsAdmin(address) || member.get().getAddress().equals(address)) { - teamMemberRepository.findByTeamAndMember(teamMember.getTeamId(), - teamMember.getMemberId()).ifPresent(teamMember1 -> { - teamMember1.setStatus(Constants.EXIT_TEAM); - teamMemberRepository.save(teamMember1); - }); - - Team team = teamRepository.findById(teamMember.getTeamId()).get(); - Member member1 = memberRepository.findById(teamMember.getMemberId()).get(); - String subject = team.getTeamName() + "团队成员退出"; - String text = member1.getNickName() + "成员退出"; - emailService.sendMail(member.get().getEmail(), subject, text); - } else { - throw new BizException(CodeEnums.NOT_AUTHORITY_FOR_EXIT.getCode(), - CodeEnums.NOT_AUTHORITY_FOR_EXIT.getMsg()) ; - } - - } + Optional member = memberRepository.findById(teamMember.getMemberId()); + if (member.isPresent()) { + // only self or admin + if (checkMemberIsAdmin(address) || member.get().getAddress().equals(address)) { + teamMemberRepository.findByTeamAndMember(teamMember.getTeamId(), + teamMember.getMemberId()).ifPresent(teamMember1 -> { + teamMember1.setStatus(Constants.EXIT_TEAM); + teamMemberRepository.save(teamMember1); + }); + + Team team = teamRepository.findById(teamMember.getTeamId()).get(); + Member member1 = memberRepository.findById(teamMember.getMemberId()).get(); + String subject = team.getTeamName() + "团队成员退出"; + String text = member1.getNickName() + "成员退出"; + emailService.sendMail(member.get().getEmail(), subject, text); + } else { + throw new BizException(CodeEnums.NOT_AUTHORITY_FOR_EXIT.getCode(), + CodeEnums.NOT_AUTHORITY_FOR_EXIT.getMsg()); + } + + } } public List getNeedApproveMembers(Long teamId) { List memberIds = teamMemberRepository.findByTeamIdAndStatus(teamId, - Constants.REQUEST_TEAM); - List members = memberRepository.findByIdIn(memberIds); + Constants.REQUEST_TEAM); + List members = memberRepository.findByIdIn(memberIds); return members; } public List getMemberTeamsInfo(Long memberId) { List teamMembers = teamMemberRepository.findByMemberId(memberId); - //ids - List teamsWithMembers = new ArrayList<>(); + // ids + List teamsWithMembers = new ArrayList<>(); - teamMembers.stream().forEach(teamMember -> { - Team team = teamRepository.findById(teamMember.getTeamId()).get(); - TeamsWithMembers teamVO = new TeamsWithMembers(); - BeanUtils.copyProperties(team, teamVO); - teamVO.setStatus(teamMember.getStatus()); - teamsWithMembers.add(teamVO); - }); - return teamsWithMembers; + teamMembers.stream().forEach(teamMember -> { + Team team = teamRepository.findById(teamMember.getTeamId()).get(); + TeamsWithMembers teamVO = new TeamsWithMembers(); + BeanUtils.copyProperties(team, teamVO); + teamVO.setStatus(teamMember.getStatus()); + teamsWithMembers.add(teamVO); + }); + return teamsWithMembers; } - public boolean checkMemberIsAdmin(String address) { - Member member = memberService.getMemberByAddress(address); - if(member == null) { + Member member = this.memberManager.getMemberByAddress(address); + if (member == null) { return false; } // id 0 List adminMembers = teamMemberRepository.findByTeamId(1L); - if(adminMembers.contains(member.getId())) { - return true; + if (adminMembers.contains(member.getId())) { + return true; } - return false; + return false; } /** @@ -301,21 +293,20 @@ public boolean checkMemberIsAdmin(String address) { */ public boolean checkMemberIsSuperAdmin(String address) { - Member member = memberService.getMemberByAddress(address); - if(member == null) { + Member member = this.memberManager.getMemberByAddress(address); + if (member == null) { return false; } // id 0 Team team = teamRepository.findById(1L).orElseThrow(() -> new BizException(CodeEnums.TEAM_NOT_EXIST.getCode(), - CodeEnums.TEAM_NOT_EXIST.getMsg())); + CodeEnums.TEAM_NOT_EXIST.getMsg())); String admin = team.getAdministrator(); - if(admin.equals(address)) { + if (admin.equals(address)) { return true; } return false; } - public TeamsWithMembers getTeamById(Long teamId) { Optional optional = teamRepository.findById(teamId); if (optional.isPresent()) { @@ -332,7 +323,7 @@ public TeamsWithMembers getTeamById(Long teamId) { return teamsMembersVo; } else { throw new BizException(CodeEnums.TEAM_NOT_EXIST.getCode(), - CodeEnums.TEAM_NOT_EXIST.getMsg()); + CodeEnums.TEAM_NOT_EXIST.getMsg()); } } @@ -341,9 +332,10 @@ public void batchJoin(TeamMemberBatchJoinVO teamMembers) { List memberIds = teamMembers.getMemberIds(); // 批量查询已存在的TeamMember - Map existingMembersMap = teamMemberRepository.findByTeamAndMembers(teamMembers.getTeamId(), memberIds) - .stream() - .collect(Collectors.toMap(TeamMember::getMemberId, Function.identity())); + Map existingMembersMap = teamMemberRepository + .findByTeamAndMembers(teamMembers.getTeamId(), memberIds) + .stream() + .collect(Collectors.toMap(TeamMember::getMemberId, Function.identity())); for (Long memberId : memberIds) { TeamMember teamMember = existingMembersMap.getOrDefault(memberId, new TeamMember()); teamMember.setMemberId(memberId); @@ -354,22 +346,21 @@ public void batchJoin(TeamMemberBatchJoinVO teamMembers) { teamMemberRepository.saveAll(teamMemberList); } - public void update(Team team, String address) { - if(team.getAdministrator()!= null ) { - if( !checkMemberIsSupperAdmin(address)) { - throw new BizException(CodeEnums.NOT_THE_SUPER_ADMIN.getCode(), - CodeEnums.NOT_THE_SUPER_ADMIN.getMsg()); - } - Team teamdb = teamRepository.findById(team.getId()).get(); - teamdb.setAdministrator(team.getAdministrator()); - teamRepository.save(teamdb); + if (team.getAdministrator() != null) { + if (!checkMemberIsSupperAdmin(address)) { + throw new BizException(CodeEnums.NOT_THE_SUPER_ADMIN.getCode(), + CodeEnums.NOT_THE_SUPER_ADMIN.getMsg()); + } + Team teamdb = teamRepository.findById(team.getId()).get(); + teamdb.setAdministrator(team.getAdministrator()); + teamRepository.save(teamdb); } else { - Team teamdb = teamRepository.findById(team.getId()).get(); - if(team.getTeamName()!=null) { + Team teamdb = teamRepository.findById(team.getId()).get(); + if (team.getTeamName() != null) { teamdb.setTeamName(team.getTeamName()); } - if(team.getTeamProfile()!=null) { + if (team.getTeamProfile() != null) { teamdb.setTeamProfile(team.getTeamProfile()); } teamRepository.save(teamdb); @@ -379,7 +370,7 @@ public void update(Team team, String address) { public boolean checkMemberIsSupperAdmin(String address) { Team adminTeam = teamRepository.findById(1L).get(); - if(adminTeam.getAdministrator().equals(address)){ + if (adminTeam.getAdministrator().equals(address)) { return true; } return false; diff --git a/src/main/java/com/dl/officialsite/team/teammember/TeamMemberRepository.java b/src/main/java/com/dl/officialsite/team/teammember/TeamMemberRepository.java index 8f80a4ba..e548fca3 100644 --- a/src/main/java/com/dl/officialsite/team/teammember/TeamMemberRepository.java +++ b/src/main/java/com/dl/officialsite/team/teammember/TeamMemberRepository.java @@ -43,4 +43,7 @@ public interface TeamMemberRepository extends JpaRepository, nativeQuery = true) @Modifying void deleteByTeamId(@Param("team_id")Long teamId); + @Modifying + @Query(value ="delete from team_member where member_id = :member_id", nativeQuery = true) + void deleteByMemberId(@Param("member_id")Long memberId); } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0212721b..bd14c14d 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -10,10 +10,10 @@ server: max-age: -1 spring: datasource: - url: jdbc:mysql://mysql:3306/dl?allowPublicKeyRetrieval=true&useSSL=false + url: jdbc:mysql://127.0.0.1:3306/dl?allowPublicKeyRetrieval=true&useSSL=false #type: com.alibaba.druid.pool.DruidDataSource username: root - password: ${SPRING_DATASOURCE_PASSWORD} + password: 123456 maximum-pool-size: 20 jpa: @@ -25,8 +25,8 @@ spring: mail: host: ${SMTP_SERVER:smtp.gmail.com} port: ${SMTP_SERVER_PORT:587} - username: ${MAIL_ADDRESS} - password: ${MAIL_PASSWORD} + username: ${MAIL_ADDRESS:abc} + password: ${MAIL_PASSWORD:abc} properties: mail: smtp: @@ -77,4 +77,4 @@ qcloud: regionName: ${REGION_NAME} login: - filter: true + filter: false From 1794e2637a03bf1555fb018c64689360d2a4da79 Mon Sep 17 00:00:00 2001 From: liberhe <411497616@qq.com> Date: Sun, 14 Jan 2024 10:19:24 +0800 Subject: [PATCH 03/14] add ignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c5955f24..1bd79d18 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ # Log file *.log +*.pdf # BlueJ files *.ctxt From 4a5d07b5db2534f9e7746f5c4a3d5dae0a917557 Mon Sep 17 00:00:00 2001 From: dwusiq Date: Sun, 14 Jan 2024 16:44:04 +0800 Subject: [PATCH 04/14] reserve application.yml --- src/main/resources/application.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index bd14c14d..0212721b 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -10,10 +10,10 @@ server: max-age: -1 spring: datasource: - url: jdbc:mysql://127.0.0.1:3306/dl?allowPublicKeyRetrieval=true&useSSL=false + url: jdbc:mysql://mysql:3306/dl?allowPublicKeyRetrieval=true&useSSL=false #type: com.alibaba.druid.pool.DruidDataSource username: root - password: 123456 + password: ${SPRING_DATASOURCE_PASSWORD} maximum-pool-size: 20 jpa: @@ -25,8 +25,8 @@ spring: mail: host: ${SMTP_SERVER:smtp.gmail.com} port: ${SMTP_SERVER_PORT:587} - username: ${MAIL_ADDRESS:abc} - password: ${MAIL_PASSWORD:abc} + username: ${MAIL_ADDRESS} + password: ${MAIL_PASSWORD} properties: mail: smtp: @@ -77,4 +77,4 @@ qcloud: regionName: ${REGION_NAME} login: - filter: false + filter: true From ac5370f82dd6c5658f7c7f61b4b6320347f2aa30 Mon Sep 17 00:00:00 2001 From: liberhe <411497616@qq.com> Date: Sun, 14 Jan 2024 17:38:42 +0800 Subject: [PATCH 05/14] delete the useless code --- .../hiring/application/ApplicationRepository.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main/java/com/dl/officialsite/hiring/application/ApplicationRepository.java b/src/main/java/com/dl/officialsite/hiring/application/ApplicationRepository.java index 968e75af..7f3c403c 100644 --- a/src/main/java/com/dl/officialsite/hiring/application/ApplicationRepository.java +++ b/src/main/java/com/dl/officialsite/hiring/application/ApplicationRepository.java @@ -1,12 +1,7 @@ package com.dl.officialsite.hiring.application; -import com.dl.officialsite.hiring.Hiring; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; - -import java.util.List; public interface ApplicationRepository extends JpaRepository, From 92a11b91209b62d663b2a714a9b23ccfc2d7ea5f Mon Sep 17 00:00:00 2001 From: chengpengxiang <15503679582@163.com> Date: Sun, 14 Jan 2024 18:20:21 +0800 Subject: [PATCH 06/14] =?UTF-8?q?fix:=E8=A7=A3=E5=86=B3=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8B=9B=E8=81=98=E9=9C=80=E8=A6=81hiring,sharing=E6=9D=83?= =?UTF-8?q?=E9=99=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dl/officialsite/hiring/HireController.java | 1 - .../com/dl/officialsite/hiring/HireService.java | 13 +++++-------- .../com/dl/officialsite/member/MemberWithTeam.java | 7 +++---- .../com/dl/officialsite/team/TeamRepository.java | 3 --- 4 files changed, 8 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/dl/officialsite/hiring/HireController.java b/src/main/java/com/dl/officialsite/hiring/HireController.java index 97f382ed..fa8051af 100644 --- a/src/main/java/com/dl/officialsite/hiring/HireController.java +++ b/src/main/java/com/dl/officialsite/hiring/HireController.java @@ -2,7 +2,6 @@ import com.dl.officialsite.common.base.BaseResponse; import com.dl.officialsite.hiring.vo.HiringVO; -import com.dl.officialsite.login.Auth; import java.util.List; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/main/java/com/dl/officialsite/hiring/HireService.java b/src/main/java/com/dl/officialsite/hiring/HireService.java index 66f6e4ad..2914d67b 100644 --- a/src/main/java/com/dl/officialsite/hiring/HireService.java +++ b/src/main/java/com/dl/officialsite/hiring/HireService.java @@ -11,6 +11,9 @@ import com.dl.officialsite.mail.EmailService; import com.dl.officialsite.member.Member; import com.dl.officialsite.member.MemberRepository; +import com.dl.officialsite.member.MemberService; +import com.dl.officialsite.member.MemberWithTeam; +import com.dl.officialsite.team.Team; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -19,11 +22,6 @@ import java.util.stream.Collectors; import javax.persistence.criteria.CriteriaBuilder.In; import javax.persistence.criteria.Predicate; - -import com.dl.officialsite.member.MemberService; -import com.dl.officialsite.member.MemberWithTeam; -import com.dl.officialsite.team.Team; -import com.dl.officialsite.team.vo.TeamsWithMembers; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -58,7 +56,6 @@ public class HireService { @Autowired private EmailService emailService; - @Autowired private MemberService memberService; /** @@ -71,8 +68,8 @@ public HiringVO add(HiringVO hiringVO, String address) { //check in hiring team or in sharing team MemberWithTeam memberWithTeam = memberService.getMemberWithTeamInfoByAddress(address); - ArrayList teams = memberWithTeam.getTeams(); - List teamNames = teams.stream().map(x->x.getTeamName()).collect(Collectors.toList()); + ArrayList teams = memberWithTeam.getTeams(); + List teamNames = teams.stream().map(Team::getTeamName).collect(Collectors.toList()); if(!teamNames.contains("Dapp-Learning DAO co-founders") && !teamNames.contains("Dapp-Learning DAO sharing group") && !teamNames.contains("Hiring Team")) { throw new BizException("1001", "no permission"); } diff --git a/src/main/java/com/dl/officialsite/member/MemberWithTeam.java b/src/main/java/com/dl/officialsite/member/MemberWithTeam.java index fef4321b..48d2c435 100644 --- a/src/main/java/com/dl/officialsite/member/MemberWithTeam.java +++ b/src/main/java/com/dl/officialsite/member/MemberWithTeam.java @@ -2,17 +2,16 @@ import com.dl.officialsite.team.Team; -import com.dl.officialsite.team.vo.TeamsWithMembers; -import lombok.*; - import java.util.ArrayList; +import lombok.Data; +import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) public class MemberWithTeam extends Member { - private ArrayList teams; + private ArrayList teams; private boolean isAdmin; diff --git a/src/main/java/com/dl/officialsite/team/TeamRepository.java b/src/main/java/com/dl/officialsite/team/TeamRepository.java index 3e447507..608b5215 100644 --- a/src/main/java/com/dl/officialsite/team/TeamRepository.java +++ b/src/main/java/com/dl/officialsite/team/TeamRepository.java @@ -1,6 +1,5 @@ package com.dl.officialsite.team; -import com.dl.officialsite.member.Member; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; @@ -14,6 +13,4 @@ public interface TeamRepository extends JpaRepository, JpaSpecificat - - } From 4e7be68ce0a8a443ffae47b2580eaf01c82ef8d9 Mon Sep 17 00:00:00 2001 From: liberhe <411497616@qq.com> Date: Mon, 15 Jan 2024 11:13:47 +0800 Subject: [PATCH 07/14] fix the yml --- README.md | 3 +++ src/main/resources/application.yml | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d05a9296..cd36b6c2 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,11 @@ backend of official website ## interface for front-end see : + https://www.postman.com/lively-station-290552/workspace/publicworkspace/collection/13180077-af411142-dfd4-4e33-bfb5-ec26ff095072 +https://hoppscotch.io/ + ## login xyz https://github.com/spruceid/siwe-go/blob/main/message.go diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0212721b..164f8180 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -6,8 +6,7 @@ server: session: timeout: 60m cookie: - # domain: "*.dapplearning.org" - max-age: -1 + max-age: 3600 spring: datasource: url: jdbc:mysql://mysql:3306/dl?allowPublicKeyRetrieval=true&useSSL=false From 3eaae1481193a8b490720b7e635eaba4c2c92150 Mon Sep 17 00:00:00 2001 From: liberhe <411497616@qq.com> Date: Mon, 15 Jan 2024 11:36:23 +0800 Subject: [PATCH 08/14] fix the session --- .../com/dl/officialsite/login/controller/LoginController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/dl/officialsite/login/controller/LoginController.java b/src/main/java/com/dl/officialsite/login/controller/LoginController.java index e837dabc..9f14e896 100644 --- a/src/main/java/com/dl/officialsite/login/controller/LoginController.java +++ b/src/main/java/com/dl/officialsite/login/controller/LoginController.java @@ -111,7 +111,8 @@ private boolean checkNonce(String message, String nonce ) { @GetMapping("/logout") public BaseResponse logout(@RequestParam String address, HttpSession session) { - HttpSessionUtils.clearLogin(session); + HttpSessionUtils.clearLogin(session); + session.invalidate(); return BaseResponse.successWithData(null); } From c4167b703381c765061737a3fd9814940b182da2 Mon Sep 17 00:00:00 2001 From: liberhe <411497616@qq.com> Date: Mon, 15 Jan 2024 12:08:22 +0800 Subject: [PATCH 09/14] fix the cookies expire --- src/main/java/com/dl/officialsite/config/WebConfig.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/dl/officialsite/config/WebConfig.java b/src/main/java/com/dl/officialsite/config/WebConfig.java index b2d50590..e3887e70 100644 --- a/src/main/java/com/dl/officialsite/config/WebConfig.java +++ b/src/main/java/com/dl/officialsite/config/WebConfig.java @@ -27,6 +27,7 @@ public CookieSerializer cookieSerializer() { serializer.setCookieName("SESSION"); serializer.setCookiePath("/"); serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$"); + serializer.setCookieMaxAge(1800); // serializer.setDomainNamePattern("^.+?\\.dapplearning\\.org$"); return serializer; } From b5d0d5a3ad178fcd2233622051d121453df0c6c1 Mon Sep 17 00:00:00 2001 From: liberhe <411497616@qq.com> Date: Mon, 15 Jan 2024 21:42:21 +0800 Subject: [PATCH 10/14] fix the session api --- .../login/controller/LoginController.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/dl/officialsite/login/controller/LoginController.java b/src/main/java/com/dl/officialsite/login/controller/LoginController.java index 9f14e896..2a6165c7 100644 --- a/src/main/java/com/dl/officialsite/login/controller/LoginController.java +++ b/src/main/java/com/dl/officialsite/login/controller/LoginController.java @@ -16,13 +16,12 @@ import org.web3j.crypto.Keys; import org.web3j.crypto.Sign; +import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.math.BigInteger; import java.security.SignatureException; -import java.util.Objects; -import java.util.Optional; -import java.util.UUID; +import java.util.*; import static org.web3j.crypto.Sign.getEthereumMessageHash; import static org.web3j.utils.Numeric.hexStringToByteArray; @@ -119,6 +118,19 @@ public BaseResponse logout(@RequestParam String address, HttpSession session) { @GetMapping("/check-session") public BaseResponse checkSessionStatus( HttpServletRequest request) { + Cookie[] cookies = request.getCookies(); + List domains = new ArrayList<>(); + + if (cookies != null) { + for (Cookie cookie : cookies) { + String domain = cookie.getDomain(); + if (domain != null && !domain.isEmpty()) { + logger.info("domains: "+ domain); + domains.add(domain); + } + } + } + if (request.isRequestedSessionIdValid()) { return BaseResponse.successWithData(true) ; From 72486ce332112450c629f85d68609e15fc1c2561 Mon Sep 17 00:00:00 2001 From: liberhe <411497616@qq.com> Date: Mon, 15 Jan 2024 21:53:01 +0800 Subject: [PATCH 11/14] fix the session api --- .../login/controller/LoginController.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/dl/officialsite/login/controller/LoginController.java b/src/main/java/com/dl/officialsite/login/controller/LoginController.java index 2a6165c7..caf40c7a 100644 --- a/src/main/java/com/dl/officialsite/login/controller/LoginController.java +++ b/src/main/java/com/dl/officialsite/login/controller/LoginController.java @@ -1,6 +1,7 @@ package com.dl.officialsite.login.controller; +import cn.hutool.db.Session; import com.dl.officialsite.common.base.BaseResponse; import com.dl.officialsite.common.utils.HttpSessionUtils; import com.dl.officialsite.login.model.SessionUserInfo; @@ -18,6 +19,7 @@ import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.math.BigInteger; import java.security.SignatureException; @@ -37,8 +39,27 @@ public class LoginController { @GetMapping("/nonce") - public String getNonce( @RequestParam String address, HttpSession session) { + public String getNonce( @RequestParam String address, HttpServletRequest request, HttpServletResponse response) { + HttpSession session = request.getSession(); logger.info(session.getId()); + + Cookie[] cookies = request.getCookies(); + List domains = new ArrayList<>(); + + if (cookies != null) { + for (Cookie cookie : cookies) { + String domain = cookie.getDomain(); + if (domain != null && !domain.isEmpty()) { + logger.info("domains: "+ domain); + domains.add(domain); + if(cookie.getDomain().equals("dapplearning.org")){ + cookie.setMaxAge(0); + cookie.setPath("/"); + response.addCookie(cookie); + } + } + } + } UUID uuid = UUID.randomUUID(); String uuidAsString = uuid.toString().replaceAll("-", ""); From 1e38601de54b555f2e7a68e0d0df6b5332924909 Mon Sep 17 00:00:00 2001 From: liberhe <411497616@qq.com> Date: Mon, 15 Jan 2024 22:09:54 +0800 Subject: [PATCH 12/14] fix the cookies --- .../java/com/dl/officialsite/config/WebConfig.java | 2 +- .../officialsite/login/controller/LoginController.java | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/dl/officialsite/config/WebConfig.java b/src/main/java/com/dl/officialsite/config/WebConfig.java index e3887e70..f1a72343 100644 --- a/src/main/java/com/dl/officialsite/config/WebConfig.java +++ b/src/main/java/com/dl/officialsite/config/WebConfig.java @@ -26,7 +26,7 @@ public CookieSerializer cookieSerializer() { //JSESSIONID serializer.setCookieName("SESSION"); serializer.setCookiePath("/"); - serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$"); + // serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$"); serializer.setCookieMaxAge(1800); // serializer.setDomainNamePattern("^.+?\\.dapplearning\\.org$"); return serializer; diff --git a/src/main/java/com/dl/officialsite/login/controller/LoginController.java b/src/main/java/com/dl/officialsite/login/controller/LoginController.java index caf40c7a..858860b6 100644 --- a/src/main/java/com/dl/officialsite/login/controller/LoginController.java +++ b/src/main/java/com/dl/officialsite/login/controller/LoginController.java @@ -52,11 +52,11 @@ public String getNonce( @RequestParam String address, HttpServletRequest request if (domain != null && !domain.isEmpty()) { logger.info("domains: "+ domain); domains.add(domain); - if(cookie.getDomain().equals("dapplearning.org")){ - cookie.setMaxAge(0); - cookie.setPath("/"); - response.addCookie(cookie); - } +// if(cookie.getDomain().equals("dapplearning.org")){ +// cookie.setMaxAge(0); +// cookie.setPath("/"); +// response.addCookie(cookie); +// } } } } From a3d1c4da2d1b1baab78ec167cbfc6f9d786d5b6a Mon Sep 17 00:00:00 2001 From: liberhe <411497616@qq.com> Date: Mon, 15 Jan 2024 22:15:28 +0800 Subject: [PATCH 13/14] open the fix of domain --- src/main/java/com/dl/officialsite/config/WebConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/dl/officialsite/config/WebConfig.java b/src/main/java/com/dl/officialsite/config/WebConfig.java index f1a72343..e3887e70 100644 --- a/src/main/java/com/dl/officialsite/config/WebConfig.java +++ b/src/main/java/com/dl/officialsite/config/WebConfig.java @@ -26,7 +26,7 @@ public CookieSerializer cookieSerializer() { //JSESSIONID serializer.setCookieName("SESSION"); serializer.setCookiePath("/"); - // serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$"); + serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$"); serializer.setCookieMaxAge(1800); // serializer.setDomainNamePattern("^.+?\\.dapplearning\\.org$"); return serializer; From 8ebdcbe3e9f074c6c33dfadc29405f0a915eb4b7 Mon Sep 17 00:00:00 2001 From: liberhe <411497616@qq.com> Date: Mon, 15 Jan 2024 22:45:37 +0800 Subject: [PATCH 14/14] delete the useless cookies --- .../officialsite/login/controller/LoginController.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/dl/officialsite/login/controller/LoginController.java b/src/main/java/com/dl/officialsite/login/controller/LoginController.java index 858860b6..caf40c7a 100644 --- a/src/main/java/com/dl/officialsite/login/controller/LoginController.java +++ b/src/main/java/com/dl/officialsite/login/controller/LoginController.java @@ -52,11 +52,11 @@ public String getNonce( @RequestParam String address, HttpServletRequest request if (domain != null && !domain.isEmpty()) { logger.info("domains: "+ domain); domains.add(domain); -// if(cookie.getDomain().equals("dapplearning.org")){ -// cookie.setMaxAge(0); -// cookie.setPath("/"); -// response.addCookie(cookie); -// } + if(cookie.getDomain().equals("dapplearning.org")){ + cookie.setMaxAge(0); + cookie.setPath("/"); + response.addCookie(cookie); + } } } }