private static void createSuperUser(Holder holder) {
ServerProperties props = holder.props;
String url = props.getAdminUrl(props.host);
String email = props.getProperty("admin.email", "admin@blynk.cc");
String pass = props.getProperty("admin.pass");
if (!holder.userDao.isSuperAdminExists()) {
if (pass == null || pass.isEmpty()) {
System.out.println("Admin password not specified. Random password generated.");
pass = StringUtils.randomPassword(24);
}
System.out.println("Your Admin url is " + url);
System.out.println("Your Admin login email is " + email);
System.out.println("Your Admin password is " + pass);
String hash = SHA256Util.makeHash(pass, email);
holder.userDao.add(email, hash, AppNameUtil.BLYNK, true);
String vendorEmail = props.vendorEmail;
if (vendorEmail != null) {
String subj = "Your private Blynk server for " + props.productName + " is up!";
String body = buildServerUpEmailBody(url, email, pass);
holder.blockingIOProcessor.messagingExecutor.execute(() -> {
try {
holder.mailWrapper.sendHtml(vendorEmail, subj, body);
} catch (Exception e) {
e.printStackTrace();
}
});
}
}
}