프로그램, 특히 db에서 pw를 반환해주면 안된다.
private ArrayList<MemberDTO> selectAll(MemberDTO memberDTO){ // 코드의 결합도가 낮아짐 ★
ArrayList<MemberDTO> datas = new ArrayList<>();
if(memberDTO.getMemberCondition().equals("ALL")) {
for (int i = 0; i < this.datas.size(); i++) {
MemberDTO data = new MemberDTO();
data.setMemberId(this.datas.get(i).getMemberId());
// Passwd 반환 금지
// data.setMemberPasswd(this.datas.get(i).getMemberPasswd());
data.setMemberName(this.datas.get(i).getMemberName());
datas.add(data);
}
}
return datas;
}
public MemberDTO selectOne(MemberDTO memberDTO) {
for(int i=0;i<this.datas.size();i++) {
if(this.datas.get(i).getMemberId().equals(memberDTO.getMemberId())) {
if(this.datas.get(i).getMemberPasswd().equals(memberDTO.getMemberPasswd())){
MemberDTO data = new MemberDTO();
data.setMemberId(this.datas.get(i).getMemberId());
// Passwd 반환 금지
// data.setMemberPasswd(this.datas.get(i).getMemberPasswd());
data.setMemberName(this.datas.get(i).getMemberName());
return data;
}
System.out.println(" [로그] MemberDAO.selectOne() 해당하는 비밀번호가 없습니다.");
return null;
}
}
System.out.println(" [로그] MemberDAO.selectOne() 해당하는 아이디가 없습니다.");
return null;
}
백단에서 로그인 부분 코딩시
// 로그인
else if (command == 2) {
// 입력받기
// 아이디
String memberId = this.client.getMemberId();
// 비밀번호
String memberPasswd = this.client.getMemberPasswd();
MemberDTO mDTO = new MemberDTO();
mDTO.setMemberId(memberId);
mDTO.setMemberPasswd(memberPasswd);
// 찾으면 값, 못찾으면 null
MemberDTO member = this.mDAO.selectOne(mDTO);
// 백단에서 pw를 막기도 함
//member.setMemberPasswd(null);
하지만 이렇게하면 db에서 막는것에 비해 보안이 살짝 떨어지기도 한다.
update와 delete 모두 하나를 잡아서 수정/삭제 하기때문에 selectOne의 느낌을 포함한다.
기능 추가