use of net.cryptonomica.entities.CryptonomicaUser in project cryptonomica by Cryptonomica.
the class CryptonomicaUserAPI method getMyUserData.
// end of ensureNewCryptonomicaUser @ApiMethod
/* ----- */
@ApiMethod(name = "getMyUserData", path = "getMyUserData", httpMethod = ApiMethod.HttpMethod.POST)
@SuppressWarnings("unused")
public UserProfileGeneralView getMyUserData(final HttpServletRequest httpServletRequest, final User googleUser) {
//
UserProfileGeneralView userProfileGeneralView = null;
CryptonomicaUser cryptonomicaUser = null;
//
if (googleUser == null) {
userProfileGeneralView = new UserProfileGeneralView();
userProfileGeneralView.setLoggedIn(false);
return userProfileGeneralView;
}
try {
cryptonomicaUser = ofy().load().key(Key.create(CryptonomicaUser.class, googleUser.getUserId())).now();
} catch (Exception e) {
LOG.warning(e.getMessage());
}
if (cryptonomicaUser == null) {
userProfileGeneralView = new UserProfileGeneralView();
userProfileGeneralView.setLoggedIn(true);
userProfileGeneralView.setRegisteredCryptonomicaUser(false);
return userProfileGeneralView;
} else {
userProfileGeneralView = new UserProfileGeneralView(cryptonomicaUser);
userProfileGeneralView.setLoggedIn(true);
userProfileGeneralView.setRegisteredCryptonomicaUser(true);
return userProfileGeneralView;
}
}
use of net.cryptonomica.entities.CryptonomicaUser in project cryptonomica by Cryptonomica.
the class EthNodeAPI method verifyEthAddress.
@ApiMethod(name = "verifyEthAddress", path = "verifyEthAddress", httpMethod = ApiMethod.HttpMethod.POST)
@SuppressWarnings("unused")
public BooleanWrapperObject verifyEthAddress(// final HttpServletRequest httpServletRequest,
final User googleUser, @Named("ethereumAcc") final String ethereumAcc) throws IllegalArgumentException, UnauthorizedException, Exception {
BooleanWrapperObject result = new BooleanWrapperObject();
// ensure registered user ( - may be later only for verified):
CryptonomicaUser cryptonomicaUser = UserTools.ensureCryptonomicaRegisteredUser(googleUser);
// check form:
LOG.warning("ethereumAcc" + ethereumAcc);
if (ethereumAcc == null || ethereumAcc.equals("")) {
throw new IllegalArgumentException("Provided text is to short or empty");
}
String tomcatWeb3jAPIkey = ofy().load().key(Key.create(AppSettings.class, "tomcatweb3jAPIkey")).now().getValue();
String urlHost = "https://tomcatweb3j.cryptonomica.net";
String urlPath = "/GetVerificationRequestDataServlet";
String urlAddress = urlHost + urlPath;
// HashMap<String, String> queryMap = new HashMap<>();
// queryMap.put("address", ethereumAcc);
String postRequestBody = "address=" + ethereumAcc;
HTTPResponse httpResponse = HttpService.postRequestWithAPIkey(urlAddress, postRequestBody, tomcatWeb3jAPIkey);
byte[] httpResponseContentBytes = httpResponse.getContent();
String httpResponseContentString = new String(httpResponseContentBytes, StandardCharsets.UTF_8);
// Test:
// Object resObj = new Gson().fromJson(httpResponseContentString, Object.class); // --- exception
// LOG.warning("resObj: " + new Gson().toJson(resObj));
LOG.warning("httpResponseContentString: " + httpResponseContentString);
VerificationRequestDataFromSC verificationRequestDataFromSC = GSON.fromJson(httpResponseContentString, VerificationRequestDataFromSC.class);
// GET Key from DataBase by fingerprint:
String unverifiedFingerprint = verificationRequestDataFromSC.getUnverifiedFingerprint();
String signedString = verificationRequestDataFromSC.getSignedString();
PGPPublicKeyData pgpPublicKeyData = PGPTools.getPGPPublicKeyDataFromDataBaseByFingerprint(unverifiedFingerprint);
Boolean keyVerifiedOffline = pgpPublicKeyData.getVerified();
Boolean keyVerifiedOnline = pgpPublicKeyData.getOnlineVerificationFinished();
if (!keyVerifiedOffline && !keyVerifiedOnline) {
throw new Exception("Owner of the OpenPGP key " + pgpPublicKeyData.getFingerprint() + " not verified. Can not process with ETH address verification for " + ethereumAcc);
}
PGPPublicKey publicKey = PGPTools.readPublicKeyFromString(pgpPublicKeyData.getAsciiArmored().getValue());
result.setResult(PGPTools.verifyText(signedString, publicKey));
if (result.getResult()) {
Map<String, String> parameterMap = new HashMap<>();
parameterMap.put("acc", ethereumAcc);
parameterMap.put("fingerprint", unverifiedFingerprint);
// https://stackoverflow.com/questions/7784421/getting-unix-timestamp-from-date
Long keyCertificateValidUntilUnixTimeLong = pgpPublicKeyData.getExp().getTime() / 1000;
Integer keyCertificateValidUntilUnixTime = keyCertificateValidUntilUnixTimeLong.intValue();
parameterMap.put("keyCertificateValidUntil", keyCertificateValidUntilUnixTime.toString());
parameterMap.put("firstName", pgpPublicKeyData.getFirstName());
parameterMap.put("lastName", pgpPublicKeyData.getLastName());
if (pgpPublicKeyData.getUserBirthday() != null) {
// for testing with old keys only
Long birthDateUnixTimeLong = pgpPublicKeyData.getUserBirthday().getTime() / 1000;
Integer birthDateUnixTime = birthDateUnixTimeLong.intValue();
parameterMap.put("birthDate", birthDateUnixTime.toString());
} else {
parameterMap.put("birthDate", "null");
}
if (pgpPublicKeyData.getNationality() != null) {
// for testing with old keys only
parameterMap.put("nationality", pgpPublicKeyData.getNationality());
} else {
parameterMap.put("nationality", "null");
}
LOG.warning("parameterMap: ");
LOG.warning(GSON.toJson(parameterMap));
HTTPResponse httpResponseFromAddVerificationDataServlet = HttpService.makePostRequestWithParametersMapAndApiKey("https://tomcatweb3j.cryptonomica.net/addVerificationData", tomcatWeb3jAPIkey, parameterMap);
byte[] httpResponseContentBytesFromAddVerificationDataServlet = httpResponseFromAddVerificationDataServlet.getContent();
String httpResponseContentStringAddVerificationDataServlet = new String(httpResponseContentBytesFromAddVerificationDataServlet, StandardCharsets.UTF_8);
LOG.warning(httpResponseContentStringAddVerificationDataServlet);
result.setMessage(// tx receipt
httpResponseContentStringAddVerificationDataServlet);
}
LOG.warning("result:");
LOG.warning(GSON.toJson(result));
return result;
}
use of net.cryptonomica.entities.CryptonomicaUser in project cryptonomica by Cryptonomica.
the class EthNodeAPI method getVerificationDataFromSmartContract.
//
@ApiMethod(name = "getVerificationFromSC", path = "getVerificationFromSC", httpMethod = ApiMethod.HttpMethod.GET)
@SuppressWarnings("unused")
public VerificationStruct getVerificationDataFromSmartContract(// final HttpServletRequest httpServletRequest,
final User googleUser, @Named("ethereumAcc") final String ethereumAcc) throws IllegalArgumentException, UnauthorizedException {
// ensure registered user ( - may be later only for verified):
CryptonomicaUser cryptonomicaUser = UserTools.ensureCryptonomicaRegisteredUser(googleUser);
// check form:
LOG.warning("ethereumAcc" + ethereumAcc);
if (ethereumAcc == null || ethereumAcc.equals("")) {
throw new IllegalArgumentException("Provided text is to short or empty");
}
String tomcatWeb3jAPIkey = ofy().load().key(Key.create(AppSettings.class, "tomcatweb3jAPIkey")).now().getValue();
String urlHost = "https://tomcatweb3j.cryptonomica.net";
String urlPath = "/getVerification";
String urlAddress = urlHost + urlPath;
// HashMap<String, String> queryMap = new HashMap<>();
// queryMap.put("address", ethereumAcc);
String postRequestBody = "address=" + ethereumAcc;
HTTPResponse httpResponse = HttpService.postRequestWithAPIkey(urlAddress, postRequestBody, tomcatWeb3jAPIkey);
// LOG.warning("httpResponse: " + new Gson().toJson(httpResponse));
byte[] httpResponseContentBytes = httpResponse.getContent();
String httpResponseContentString = new String(httpResponseContentBytes, StandardCharsets.UTF_8);
// Test:
// Object resObj = new Gson().fromJson(httpResponseContentString, Object.class); // --- exception
// LOG.warning("resObj: " + new Gson().toJson(resObj));
LOG.warning("httpResponseContentString: " + httpResponseContentString);
VerificationStruct verificationStruct = GSON.fromJson(httpResponseContentString, VerificationStruct.class);
/* header:
content-type: application/json;charset=utf-8
body:
{
"fingerprint": "",
"keyCertificateValidUntil": 0,
"firstName": "",
"lastName": "",
"birthDate": 0,
"nationality": "",
"verificationAddedOn": 0,
"revokedOn": 0
}
*/
return verificationStruct;
}
use of net.cryptonomica.entities.CryptonomicaUser in project cryptonomica by Cryptonomica.
the class EthNodeAPI method getVerificationDataFromSmartContractByFingerprint.
@ApiMethod(name = "getVerificationFromSCbyFingerprint", path = "getVerificationFromSCbyFingerprint", httpMethod = ApiMethod.HttpMethod.GET)
@SuppressWarnings("unused")
public StringWrapperObject getVerificationDataFromSmartContractByFingerprint(// final HttpServletRequest httpServletRequest,
final User googleUser, @Named("fingerprint") final String fingerprint) throws IllegalArgumentException, UnauthorizedException {
// ensure registered user ( - may be later only for verified):
CryptonomicaUser cryptonomicaUser = UserTools.ensureCryptonomicaRegisteredUser(googleUser);
// check form:
LOG.warning("fingerprint" + fingerprint);
if (fingerprint == null || fingerprint.equals("") || fingerprint.length() != 40) {
throw new IllegalArgumentException("Provided fingerprint is not valid");
}
String tomcatWeb3jAPIkey = ofy().load().key(Key.create(AppSettings.class, "tomcatweb3jAPIkey")).now().getValue();
String urlHost = "https://tomcatweb3j.cryptonomica.net";
String urlPath = "/getVerification";
String urlAddress = urlHost + urlPath;
// HashMap<String, String> queryMap = new HashMap<>();
// queryMap.put("address", ethereumAcc);
String postRequestBody = "fingerprint=" + fingerprint;
HTTPResponse httpResponse = HttpService.postRequestWithAPIkey(urlAddress, postRequestBody, tomcatWeb3jAPIkey);
byte[] httpResponseContentBytes = httpResponse.getContent();
String httpResponseContentString = new String(httpResponseContentBytes, StandardCharsets.UTF_8);
LOG.warning("httpResponseContentString: " + httpResponseContentString);
return new StringWrapperObject(httpResponseContentString);
}
Aggregations