summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/db/mappers/DbPendingSatellite.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/db/mappers/DbPendingSatellite.java')
-rw-r--r--src/main/java/org/openslx/imagemaster/db/mappers/DbPendingSatellite.java49
1 files changed, 43 insertions, 6 deletions
diff --git a/src/main/java/org/openslx/imagemaster/db/mappers/DbPendingSatellite.java b/src/main/java/org/openslx/imagemaster/db/mappers/DbPendingSatellite.java
index 15cdbb9..906d49e 100644
--- a/src/main/java/org/openslx/imagemaster/db/mappers/DbPendingSatellite.java
+++ b/src/main/java/org/openslx/imagemaster/db/mappers/DbPendingSatellite.java
@@ -1,17 +1,54 @@
package org.openslx.imagemaster.db.mappers;
+import java.sql.SQLException;
+import java.util.List;
+
import org.apache.log4j.Logger;
-import org.openslx.imagemaster.db.MySQL;
+import org.openslx.bwlp.thrift.iface.UserInfo;
+import org.openslx.imagemaster.db.Database;
+import org.openslx.imagemaster.db.MysqlConnection;
+import org.openslx.imagemaster.db.MysqlStatement;
+import org.openslx.util.Json;
public class DbPendingSatellite
{
- private static final Logger LOG = Logger.getLogger( DbPendingSatellite.class );
+ private static final Logger LOGGER = Logger.getLogger( DbPendingSatellite.class );
+
+ public static int add( UserInfo user, String displayName, List<String> address, String modulus, String exponent )
+ throws SQLException
+ {
+ try ( MysqlConnection connection = Database.getConnection() ) {
+ MysqlStatement stmt = connection.prepareStatement( "INSERT INTO pending_satellite"
+ + " (dateline, userid, organizationid, satellitename, addresses, publickey)"
+ + " VALUES (UNIX_TIMESTAMP(), :userid, :organizationid, :satellitename, :addresses, :pubkey)", true );
+ stmt.setString( "userid", user.userId );
+ stmt.setString( "organizationid", user.organizationId );
+ stmt.setString( "satellitename", displayName );
+ stmt.setString( "addresses", Json.serialize( address ) );
+ stmt.setString( "pubkey", Json.serialize( new KeyWrapper( modulus, exponent ) ) );
+ stmt.executeUpdate();
+ int key = stmt.getGeneratedKeys();
+ connection.commit();
+ return key;
+ } catch ( SQLException e ) {
+ LOGGER.error( "Query failed in DbPendingSatellite.add()", e );
+ throw e;
+ }
+ }
- public static boolean add( String organizationId, String address, String modulus, String exponent )
+ private static class KeyWrapper
{
- String publickey = "mod:" + modulus + " exp:" + exponent;
- return MySQL.update( "INSERT INTO pending_satellite (dateline, organizationid, address, publickey)"
- + " VALUES (UNIX_TIMESTAMP(), ?, ?, ?)", organizationId, address, publickey ) != 0;
+ public String type;
+ public String modulus;
+ public String exponent;
+
+ public KeyWrapper( String modulus, String exponent )
+ {
+ this.type = "RSA";
+ this.modulus = modulus;
+ this.exponent = exponent;
+ }
}
+
}