diff options
| author | Simon Rettberg | 2015-09-07 18:20:58 +0200 |
|---|---|---|
| committer | Simon Rettberg | 2015-09-07 18:20:58 +0200 |
| commit | 2f140304dd193763b2aa9d509f972c6f23202e93 (patch) | |
| tree | 8639a625543d78b35caccfe3dcdfa4740ba6d917 /src/main/java/org/openslx/imagemaster/db/models | |
| parent | Stuff (diff) | |
| download | masterserver-2f140304dd193763b2aa9d509f972c6f23202e93.tar.gz masterserver-2f140304dd193763b2aa9d509f972c6f23202e93.tar.xz masterserver-2f140304dd193763b2aa9d509f972c6f23202e93.zip | |
Start adapting to new DB/Thrift model
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/db/models')
| -rw-r--r-- | src/main/java/org/openslx/imagemaster/db/models/LocalOrganization.java | 62 | ||||
| -rw-r--r-- | src/main/java/org/openslx/imagemaster/db/models/LocalUser.java | 60 |
2 files changed, 122 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/imagemaster/db/models/LocalOrganization.java b/src/main/java/org/openslx/imagemaster/db/models/LocalOrganization.java new file mode 100644 index 0000000..4b5f076 --- /dev/null +++ b/src/main/java/org/openslx/imagemaster/db/models/LocalOrganization.java @@ -0,0 +1,62 @@ +package org.openslx.imagemaster.db.models; + +import java.math.BigInteger; +import java.security.NoSuchAlgorithmException; +import java.security.PublicKey; +import java.security.spec.InvalidKeySpecException; + +import org.apache.log4j.Logger; +import org.openslx.encryption.AsymKeyHolder; + +public class LocalOrganization +{ + + private static final Logger LOGGER = Logger.getLogger( LocalOrganization.class ); + + private PublicKey publickey; + + private String publickeyString; + + private String name; + + /** + * Get the public key of this organization, if known and valid. + * + * @return Public key, null on error or not known + */ + public PublicKey getPubkey() + { + if ( publickey == null && publickeyString != null ) { + String parts[] = publickeyString.split( " " ); + BigInteger mod = null; + BigInteger exp = null; + for ( int i = 0; i < parts.length; ++i ) { + if ( parts[i].startsWith( "mod:" ) ) { + // modulus found. + mod = new BigInteger( parts[i].substring( 4 ) ); + } + if ( parts[i].startsWith( "exp:" ) ) { + // exponent found. + exp = new BigInteger( parts[i].substring( 4 ) ); + } + } + if ( mod == null ) { + LOGGER.error( "No modulus for building public key was found." ); + return null; + } + if ( exp == null ) { + LOGGER.error( "No public exponent for building public key was found." ); + return null; + } + try { + publickey = new AsymKeyHolder( null, exp, mod ).getPublicKey(); + } catch ( InvalidKeySpecException | NoSuchAlgorithmException e ) { + LOGGER.info( "PubKey of " + this.name + " is not valid.", e ); + } catch ( NumberFormatException e ) { + LOGGER.info( "PubKey of " + this.name + " is corrupted in database!", e ); + } + } + return publickey; + } + +} diff --git a/src/main/java/org/openslx/imagemaster/db/models/LocalUser.java b/src/main/java/org/openslx/imagemaster/db/models/LocalUser.java new file mode 100644 index 0000000..4e0d4fb --- /dev/null +++ b/src/main/java/org/openslx/imagemaster/db/models/LocalUser.java @@ -0,0 +1,60 @@ +package org.openslx.imagemaster.db.models; + +import org.openslx.bwlp.thrift.iface.Role; +import org.openslx.bwlp.thrift.iface.UserInfo; + +/** + * Represents a user. Should be extended and given an according static method to + * instantiate by loading data from some backend. + * + */ +public class LocalUser +{ + public final String login, organizationId; + public final String password; + public final String firstName, lastName; + public final String eMail; + public final Role role; + public final int userId; + + public LocalUser( int userId, String login, String password, String organizationId, String firstName, String lastName, String eMail, + Role tutor ) + { + this.userId = userId; + this.login = login; + this.organizationId = organizationId; + this.password = password; + this.firstName = firstName; + this.lastName = lastName; + this.eMail = eMail; + this.role = tutor; + } + + @Override + public String toString() + { + final StringBuilder sb = new StringBuilder( this.login ); + sb.append( " (" ); + sb.append( this.organizationId ); + sb.append( "): " ); + sb.append( this.firstName ); + sb.append( ' ' ); + sb.append( this.lastName ); + sb.append( ' ' ); + sb.append( this.eMail ); + return sb.toString(); + } + + public UserInfo toUserInfo() + { + UserInfo ui = new UserInfo( login, firstName, lastName, eMail, organizationId ); + ui.role = role; + return ui; + } + + public String getLogin() + { + return login; + } + +} |
