totp member checkcode method added & Exception added

This commit is contained in:
geek 2018-03-15 12:54:19 +09:00
parent b7954f5a2d
commit d86857ed83
3 changed files with 49 additions and 11 deletions

View File

@ -0,0 +1,16 @@
package com.loafle.overflow.module.member.exception;
import com.loafle.overflow.commons.exception.OverflowRuntimeException;
/**
* Created by geek on 18. 3. 15.
*/
public class SecretCodeNotExistException extends OverflowRuntimeException {
public SecretCodeNotExistException() {
super();
}
public SecretCodeNotExistException(String message) {
super(message);
}
}

View File

@ -0,0 +1,16 @@
package com.loafle.overflow.module.member.exception;
import com.loafle.overflow.commons.exception.OverflowRuntimeException;
/**
* Created by geek on 18. 3. 15.
*/
public class TotpCodeNotMatchException extends OverflowRuntimeException {
public TotpCodeNotMatchException() {
super();
}
public TotpCodeNotMatchException(String message) {
super(message);
}
}

View File

@ -1,6 +1,9 @@
package com.loafle.overflow.module.member.service;
import com.loafle.overflow.module.member.dao.MemberTotpDAO;
import com.loafle.overflow.module.member.exception.SecretCodeNotExistException;
import com.loafle.overflow.module.member.exception.SignInIdNotExistException;
import com.loafle.overflow.module.member.exception.TotpCodeNotMatchException;
import com.loafle.overflow.module.member.model.Member;
import com.loafle.overflow.module.member.model.MemberTotp;
import com.warrenstrange.googleauth.GoogleAuthenticator;
@ -24,11 +27,11 @@ public class MemberTotpService {
public void regist(Member member, String secretCode, String code) throws Exception {
if (null == member || 0 >= member.getId()) {
throw new Exception("Not Null Member ID");
throw new SignInIdNotExistException("Not Null Member ID");
}
if (!this.checkCode(secretCode, code) ) {
throw new Exception("Not Equal");
throw new TotpCodeNotMatchException("Not Equal");
}
MemberTotp totp = new MemberTotp();
@ -38,12 +41,12 @@ public class MemberTotpService {
this.totpDAO.save(totp);
}
public MemberTotp modify(MemberTotp totp) throws Exception {
public MemberTotp modify(MemberTotp totp) {
if ( null == totp.getSecretCode() || totp.getSecretCode().equals("")) {
throw new Exception("Not Null SecretCode");
throw new SecretCodeNotExistException("No secret code exists");
}
if (null == totp.getMember() || 0 < totp.getMember().getId()) {
throw new Exception("Not Null Member ID");
throw new SignInIdNotExistException("There is no member ID in the TOTP table.");
}
return this.totpDAO.save(totp);
@ -57,20 +60,27 @@ public class MemberTotpService {
return this.totpDAO.findOne(id);
}
public boolean checkCodeForMember(Member member, String code) throws Exception {
MemberTotp totp = this.totpDAO.findByMember(member);
if (null == totp && (totp.getSecretCode() == null || totp.getSecretCode().equals("")) ) {
throw new SignInIdNotExistException("Error TotpMember");
}
return this.checkCode(totp.getSecretCode(), code);
}
public boolean checkCode(String secretCode, String code) throws Exception {
GoogleAuthenticator googleAuthenticator = new GoogleAuthenticator();
int codeInt = Integer.parseInt(code);
boolean isCheck = googleAuthenticator.authorize(secretCode, codeInt);
if (!isCheck) {
throw new Exception("Invalid Code");
throw new TotpCodeNotMatchException("Invalid Code");
}
return isCheck;
}
public Map<String, String> createTotp(Member member) {
// MemberTotp totp = new MemberTotp();
Map<String, String> returnMap = new HashMap<>();
GoogleAuthenticator googleAuthenticator = new GoogleAuthenticator();
@ -84,10 +94,6 @@ public class MemberTotpService {
.setPath("/" + formatLabel("overFlow", member.getEmail()))
.setParameter("secret", key.getKey());
// totp.setMember(member);
// totp.setSecretCode(secret);
// totp.setOtpAuth(uri.toString());
returnMap.put("key", secret);
returnMap.put("uri", uri.toString());