You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2015/03/05 20:36:30 UTC
[08/17] airavata git commit: Reorganizing credential store to create
a light weight stubs artifact - AIRAVATA-1621
http://git-wip-us.apache.org/repos/asf/airavata/blob/58c58cf2/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/cpi/cs_cpi_serviceConstants.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/cpi/cs_cpi_serviceConstants.java b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/cpi/cs_cpi_serviceConstants.java
new file mode 100644
index 0000000..2b8858e
--- /dev/null
+++ b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/cpi/cs_cpi_serviceConstants.java
@@ -0,0 +1,55 @@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package org.apache.airavata.credential.store.cpi;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class cs_cpi_serviceConstants {
+
+ public static final String CS_CPI_VERSION = "0.15.0";
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/58c58cf2/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/AuditInfo.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/AuditInfo.java b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/AuditInfo.java
new file mode 100644
index 0000000..93b4e94
--- /dev/null
+++ b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/AuditInfo.java
@@ -0,0 +1,53 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.credential.store.credential;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * Any audit information related to a credential.
+ */
+public interface AuditInfo extends Serializable {
+
+ /**
+ * Gets the community user associated with the credential.
+ *
+ * @return The community user associated with the credential.
+ */
+ public CommunityUser getCommunityUser();
+
+ /**
+ * The portal user associated with the credential.
+ *
+ * @return The portal user name.
+ */
+ public String getPortalUserId();
+
+ /**
+ * Get the time which credentials are persisted.
+ *
+ * @return Time credentials are persisted.
+ */
+ public Date getTimePersisted();
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/58c58cf2/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/CommunityUser.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/CommunityUser.java b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/CommunityUser.java
new file mode 100644
index 0000000..2856f36
--- /dev/null
+++ b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/CommunityUser.java
@@ -0,0 +1,71 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.credential.store.credential;
+
+import java.io.Serializable;
+
+/**
+ * Represents the community user.
+ */
+public class CommunityUser implements Serializable {
+
+ static final long serialVersionUID = 5783370135149452010L;
+
+ private String gatewayName;
+ private String userName;
+ private String userEmail;
+
+ public String getGatewayName() {
+ return gatewayName;
+ }
+
+ public void setGatewayName(String gatewayName) {
+ this.gatewayName = gatewayName;
+ }
+
+ public String getUserEmail() {
+ return userEmail;
+ }
+
+ public void setUserEmail(String userEmail) {
+ this.userEmail = userEmail;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public CommunityUser(String gatewayName, String userName, String userEmail) {
+ this.gatewayName = gatewayName;
+ this.userName = userName;
+ this.userEmail = userEmail;
+ }
+
+ public CommunityUser(String gatewayName, String userName) {
+ this.gatewayName = gatewayName;
+ this.userName = userName;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/58c58cf2/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/Credential.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/Credential.java b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/Credential.java
new file mode 100644
index 0000000..4f04123
--- /dev/null
+++ b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/Credential.java
@@ -0,0 +1,62 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.credential.store.credential;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+import java.util.Date;
+
+/**
+ * This class represents the actual credential. The credential can be a certificate, user name password or a SSH key. As
+ * per now we only have certificate implementation.
+ */
+public abstract class Credential implements Serializable {
+
+ private String portalUserName;
+ private Date persistedTime;
+ private String token;
+
+ public String getToken() {
+ return token;
+ }
+
+ public void setToken(String token) {
+ this.token = token;
+ }
+
+ public void setPortalUserName(String userName) {
+ portalUserName = userName;
+ }
+
+ public String getPortalUserName() {
+ return portalUserName;
+ }
+
+ public void setCertificateRequestedTime(Date ts) {
+ persistedTime = ts;
+ }
+
+ public Date getCertificateRequestedTime() {
+ return persistedTime;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/58c58cf2/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/certificate/CertificateAuditInfo.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/certificate/CertificateAuditInfo.java b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/certificate/CertificateAuditInfo.java
new file mode 100644
index 0000000..17ddb3f
--- /dev/null
+++ b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/certificate/CertificateAuditInfo.java
@@ -0,0 +1,101 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+package org.apache.airavata.credential.store.credential.impl.certificate;
+
+import org.apache.airavata.credential.store.credential.AuditInfo;
+import org.apache.airavata.credential.store.credential.CommunityUser;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.Date;
+
+/**
+ * Audit information related to community credential.
+ */
+@XmlRootElement
+public class CertificateAuditInfo implements AuditInfo {
+
+ private static final long serialVersionUID = 13213123L;
+
+ private String gatewayName;
+ private String communityUserName;
+ private String portalUserName;
+ private Date credentialsRequestedTime;
+ private String notBefore;
+ private String notAfter;
+ private long credentialLifeTime;
+
+ public String getGatewayName() {
+ return gatewayName;
+ }
+
+ public void setGatewayName(String gatewayName) {
+ this.gatewayName = gatewayName;
+ }
+
+ public void setCommunityUserName(String communityUserName) {
+ this.communityUserName = communityUserName;
+ }
+
+ public void setPortalUserName(String portalUserName) {
+ this.portalUserName = portalUserName;
+ }
+
+ public void setCredentialsRequestedTime(Date credentialsRequestedTime) {
+ this.credentialsRequestedTime = credentialsRequestedTime;
+ }
+
+ public String getNotBefore() {
+ return notBefore;
+ }
+
+ public void setNotBefore(String notBefore) {
+ this.notBefore = notBefore;
+ }
+
+ public String getNotAfter() {
+ return notAfter;
+ }
+
+ public void setNotAfter(String notAfter) {
+ this.notAfter = notAfter;
+ }
+
+ public long getCredentialLifeTime() {
+ return credentialLifeTime;
+ }
+
+ public void setCredentialLifeTime(long credentialLifeTime) {
+ this.credentialLifeTime = credentialLifeTime;
+ }
+
+ public CommunityUser getCommunityUser() {
+ return new CommunityUser(gatewayName, communityUserName);
+ }
+
+ public String getPortalUserId() {
+ return portalUserName;
+ }
+
+ public Date getTimePersisted() {
+ return credentialsRequestedTime;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/58c58cf2/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/certificate/CertificateCredential.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/certificate/CertificateCredential.java b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/certificate/CertificateCredential.java
new file mode 100644
index 0000000..16c3351
--- /dev/null
+++ b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/certificate/CertificateCredential.java
@@ -0,0 +1,102 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.credential.store.credential.impl.certificate;
+
+import org.apache.airavata.credential.store.credential.CommunityUser;
+import org.apache.airavata.credential.store.credential.Credential;
+import java.security.PrivateKey;
+import java.security.cert.X509Certificate;
+
+/**
+ * Represents the certificate credentials.
+ */
+public class CertificateCredential extends Credential {
+
+ static final long serialVersionUID = 6603675553790734432L;
+
+ /**
+ * The community user associated with this credentials.
+ */
+ private CommunityUser communityUser;
+
+ private String notAfter;
+
+ private X509Certificate[] certificates;
+
+ private PrivateKey privateKey;
+
+ private long lifeTime;
+
+ private String notBefore;
+
+ public CertificateCredential() {
+ }
+
+ public String getNotBefore() {
+ return notBefore;
+ }
+
+ public void setNotBefore(String notBefore) {
+ this.notBefore = notBefore;
+ }
+
+ public String getNotAfter() {
+ return notAfter;
+ }
+
+ public void setNotAfter(String notAfter) {
+ this.notAfter = notAfter;
+ }
+
+ public PrivateKey getPrivateKey() {
+ return privateKey;
+ }
+
+ public void setPrivateKey(PrivateKey privateKey) {
+ this.privateKey = privateKey;
+ }
+
+ public X509Certificate[] getCertificates() {
+ return certificates;
+ }
+
+ public void setCertificates(X509Certificate[] certificate) {
+ this.certificates = certificate;
+ }
+
+ public long getLifeTime() {
+ return lifeTime;
+ }
+
+ public void setLifeTime(long lifeTime) {
+ this.lifeTime = lifeTime;
+ }
+
+ public CommunityUser getCommunityUser() {
+ return communityUser;
+ }
+
+ public void setCommunityUser(CommunityUser communityUser) {
+ this.communityUser = communityUser;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/58c58cf2/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/password/PasswordCredential.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/password/PasswordCredential.java b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/password/PasswordCredential.java
new file mode 100644
index 0000000..a31c98b
--- /dev/null
+++ b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/password/PasswordCredential.java
@@ -0,0 +1,53 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.credential.store.credential.impl.password;
+
+import org.apache.airavata.credential.store.credential.Credential;
+import org.apache.airavata.credential.store.credential.impl.ssh.SSHCredential;
+
+import java.util.Date;
+
+/**
+ * User name password credentials.
+ */
+public class PasswordCredential extends SSHCredential {
+
+ private String userName;
+ private String password;
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/58c58cf2/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/ssh/SSHCredential.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/ssh/SSHCredential.java b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/ssh/SSHCredential.java
new file mode 100644
index 0000000..d41af21
--- /dev/null
+++ b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/ssh/SSHCredential.java
@@ -0,0 +1,88 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.credential.store.credential.impl.ssh;
+
+import org.apache.airavata.credential.store.credential.Credential;
+import java.io.Serializable;
+
+/**
+ * An SSH Credential class which is an extension of Airavata Credential
+ */
+public class SSHCredential extends Credential implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1277154647420198981L;
+
+ private byte[] privatekey;
+ private byte[] publicKey;
+ private String passphrase;
+ private String gateway;
+ private String username;
+
+
+ public SSHCredential() {
+ }
+
+ public SSHCredential(byte[] privatekey, byte[] publicKey, String passphrase, String gateway,String username) {
+ this.privatekey = privatekey;
+ this.publicKey = publicKey;
+ this.passphrase = passphrase;
+ this.gateway = gateway;
+ this.username = username;
+ this.setPortalUserName(username);
+ }
+
+ public byte[] getPrivateKey() {
+ return privatekey;
+ }
+
+ public void setPrivateKey(byte[] privatekey) {
+ this.privatekey = privatekey;
+ }
+
+ public byte[] getPublicKey() {
+ return publicKey;
+ }
+
+ public void setPublicKey(byte[] pubKey) {
+ this.publicKey = pubKey;
+ }
+
+ public String getPassphrase() {
+ return passphrase;
+ }
+
+ public void setPassphrase(String passphrase) {
+ this.passphrase = passphrase;
+ }
+
+ public String getGateway() {
+ return gateway;
+ }
+
+ public void setGateway(String gateway) {
+ this.gateway = gateway;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/58c58cf2/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/ssh/SSHCredentialGenerator.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/ssh/SSHCredentialGenerator.java b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/ssh/SSHCredentialGenerator.java
new file mode 100644
index 0000000..ac1f0df
--- /dev/null
+++ b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/credential/impl/ssh/SSHCredentialGenerator.java
@@ -0,0 +1,103 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.credential.store.credential.impl.ssh;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+import org.apache.airavata.credential.store.store.CredentialStoreException;
+import org.apache.airavata.credential.store.store.impl.SSHCredentialWriter;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.RandomStringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.jcraft.jsch.JSch;
+import com.jcraft.jsch.JSchException;
+import com.jcraft.jsch.KeyPair;
+
+/**
+ * A class which generates an SSH credential
+ */
+public class SSHCredentialGenerator {
+
+ private static Logger logger = LoggerFactory.getLogger(SSHCredentialWriter.class);
+
+ /**
+ *
+ * @return a SSH Credential generated and encrypted using a randomly generated password
+ * @throws CredentialStoreException
+ */
+ public SSHCredential generateCredential(String tokenId) throws CredentialStoreException {
+ JSch jsch=new JSch();
+ try {
+ KeyPair kpair=KeyPair.genKeyPair(jsch, KeyPair.RSA);
+ File file;
+
+ file = File.createTempFile("id_rsa", "");
+
+ String fileName = file.getAbsolutePath();
+
+ String password = generateRandomString();
+ // We are encrypting the private key with the hash of (tokenId+password).
+ // Any client which wants to use this private key will also generate a hash and then use it to decrypt the key.
+ kpair.writePrivateKey(fileName,password.getBytes());
+ kpair.writePublicKey(fileName + ".pub" , "");
+ kpair.dispose();
+ byte[] priKey = FileUtils.readFileToByteArray(new File(fileName));
+ byte[] pubKey = FileUtils.readFileToByteArray(new File(fileName + ".pub"));
+ SSHCredential sshCredential = new SSHCredential();
+ sshCredential.setPrivateKey(priKey);
+ sshCredential.setPublicKey(pubKey);
+ sshCredential.setPassphrase(password);
+ return sshCredential;
+ } catch (IOException e) {
+ logger.error("IO Exception when creating SSH credential ",e);
+ throw new CredentialStoreException("Unable to generate SSH Credential", e);
+ } catch (JSchException e) {
+ logger.error("JSch SSH credential creation exception ",e);
+ throw new CredentialStoreException("Unable to generate SSH Credential. JSch exception ", e);
+ }
+ }
+
+ private String generateHash(String tokenId, String password) {
+ byte[] bytesOfMessage = new byte[0];
+ try {
+ bytesOfMessage = password.getBytes("UTF-8");
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ return new String( md.digest(bytesOfMessage));
+ } catch (UnsupportedEncodingException e) {
+ logger.error(e.getMessage(), e);
+ } catch (NoSuchAlgorithmException e) {
+ logger.error(e.getMessage(), e);
+ }
+ return null;
+ }
+
+ // Generate a random alphanumberic string of 16 characters length
+ private String generateRandomString() {
+ return RandomStringUtils.randomAlphanumeric(16);
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/58c58cf2/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/datamodel/CertificateCredential.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/datamodel/CertificateCredential.java b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/datamodel/CertificateCredential.java
new file mode 100644
index 0000000..ae37b1d
--- /dev/null
+++ b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/datamodel/CertificateCredential.java
@@ -0,0 +1,1104 @@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package org.apache.airavata.credential.store.datamodel;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class CertificateCredential implements org.apache.thrift.TBase<CertificateCredential, CertificateCredential._Fields>, java.io.Serializable, Cloneable, Comparable<CertificateCredential> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CertificateCredential");
+
+ private static final org.apache.thrift.protocol.TField COMMUNITY_USER_FIELD_DESC = new org.apache.thrift.protocol.TField("communityUser", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+ private static final org.apache.thrift.protocol.TField X509_CERT_FIELD_DESC = new org.apache.thrift.protocol.TField("x509Cert", org.apache.thrift.protocol.TType.STRING, (short)2);
+ private static final org.apache.thrift.protocol.TField NOT_AFTER_FIELD_DESC = new org.apache.thrift.protocol.TField("notAfter", org.apache.thrift.protocol.TType.STRING, (short)3);
+ private static final org.apache.thrift.protocol.TField PRIVATE_KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("privateKey", org.apache.thrift.protocol.TType.STRING, (short)4);
+ private static final org.apache.thrift.protocol.TField LIFE_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lifeTime", org.apache.thrift.protocol.TType.I64, (short)5);
+ private static final org.apache.thrift.protocol.TField NOT_BEFORE_FIELD_DESC = new org.apache.thrift.protocol.TField("notBefore", org.apache.thrift.protocol.TType.STRING, (short)6);
+ private static final org.apache.thrift.protocol.TField PERSISTED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("persistedTime", org.apache.thrift.protocol.TType.I64, (short)7);
+ private static final org.apache.thrift.protocol.TField TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("token", org.apache.thrift.protocol.TType.STRING, (short)8);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new CertificateCredentialStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new CertificateCredentialTupleSchemeFactory());
+ }
+
+ public CommunityUser communityUser; // required
+ public String x509Cert; // required
+ public String notAfter; // optional
+ public String privateKey; // optional
+ public long lifeTime; // optional
+ public String notBefore; // optional
+ public long persistedTime; // optional
+ public String token; // optional
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ COMMUNITY_USER((short)1, "communityUser"),
+ X509_CERT((short)2, "x509Cert"),
+ NOT_AFTER((short)3, "notAfter"),
+ PRIVATE_KEY((short)4, "privateKey"),
+ LIFE_TIME((short)5, "lifeTime"),
+ NOT_BEFORE((short)6, "notBefore"),
+ PERSISTED_TIME((short)7, "persistedTime"),
+ TOKEN((short)8, "token");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // COMMUNITY_USER
+ return COMMUNITY_USER;
+ case 2: // X509_CERT
+ return X509_CERT;
+ case 3: // NOT_AFTER
+ return NOT_AFTER;
+ case 4: // PRIVATE_KEY
+ return PRIVATE_KEY;
+ case 5: // LIFE_TIME
+ return LIFE_TIME;
+ case 6: // NOT_BEFORE
+ return NOT_BEFORE;
+ case 7: // PERSISTED_TIME
+ return PERSISTED_TIME;
+ case 8: // TOKEN
+ return TOKEN;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ private static final int __LIFETIME_ISSET_ID = 0;
+ private static final int __PERSISTEDTIME_ISSET_ID = 1;
+ private byte __isset_bitfield = 0;
+ private _Fields optionals[] = {_Fields.NOT_AFTER,_Fields.PRIVATE_KEY,_Fields.LIFE_TIME,_Fields.NOT_BEFORE,_Fields.PERSISTED_TIME,_Fields.TOKEN};
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.COMMUNITY_USER, new org.apache.thrift.meta_data.FieldMetaData("communityUser", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CommunityUser.class)));
+ tmpMap.put(_Fields.X509_CERT, new org.apache.thrift.meta_data.FieldMetaData("x509Cert", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.NOT_AFTER, new org.apache.thrift.meta_data.FieldMetaData("notAfter", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.PRIVATE_KEY, new org.apache.thrift.meta_data.FieldMetaData("privateKey", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.LIFE_TIME, new org.apache.thrift.meta_data.FieldMetaData("lifeTime", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+ tmpMap.put(_Fields.NOT_BEFORE, new org.apache.thrift.meta_data.FieldMetaData("notBefore", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.PERSISTED_TIME, new org.apache.thrift.meta_data.FieldMetaData("persistedTime", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+ tmpMap.put(_Fields.TOKEN, new org.apache.thrift.meta_data.FieldMetaData("token", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(CertificateCredential.class, metaDataMap);
+ }
+
+ public CertificateCredential() {
+ }
+
+ public CertificateCredential(
+ CommunityUser communityUser,
+ String x509Cert)
+ {
+ this();
+ this.communityUser = communityUser;
+ this.x509Cert = x509Cert;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public CertificateCredential(CertificateCredential other) {
+ __isset_bitfield = other.__isset_bitfield;
+ if (other.isSetCommunityUser()) {
+ this.communityUser = new CommunityUser(other.communityUser);
+ }
+ if (other.isSetX509Cert()) {
+ this.x509Cert = other.x509Cert;
+ }
+ if (other.isSetNotAfter()) {
+ this.notAfter = other.notAfter;
+ }
+ if (other.isSetPrivateKey()) {
+ this.privateKey = other.privateKey;
+ }
+ this.lifeTime = other.lifeTime;
+ if (other.isSetNotBefore()) {
+ this.notBefore = other.notBefore;
+ }
+ this.persistedTime = other.persistedTime;
+ if (other.isSetToken()) {
+ this.token = other.token;
+ }
+ }
+
+ public CertificateCredential deepCopy() {
+ return new CertificateCredential(this);
+ }
+
+ @Override
+ public void clear() {
+ this.communityUser = null;
+ this.x509Cert = null;
+ this.notAfter = null;
+ this.privateKey = null;
+ setLifeTimeIsSet(false);
+ this.lifeTime = 0;
+ this.notBefore = null;
+ setPersistedTimeIsSet(false);
+ this.persistedTime = 0;
+ this.token = null;
+ }
+
+ public CommunityUser getCommunityUser() {
+ return this.communityUser;
+ }
+
+ public CertificateCredential setCommunityUser(CommunityUser communityUser) {
+ this.communityUser = communityUser;
+ return this;
+ }
+
+ public void unsetCommunityUser() {
+ this.communityUser = null;
+ }
+
+ /** Returns true if field communityUser is set (has been assigned a value) and false otherwise */
+ public boolean isSetCommunityUser() {
+ return this.communityUser != null;
+ }
+
+ public void setCommunityUserIsSet(boolean value) {
+ if (!value) {
+ this.communityUser = null;
+ }
+ }
+
+ public String getX509Cert() {
+ return this.x509Cert;
+ }
+
+ public CertificateCredential setX509Cert(String x509Cert) {
+ this.x509Cert = x509Cert;
+ return this;
+ }
+
+ public void unsetX509Cert() {
+ this.x509Cert = null;
+ }
+
+ /** Returns true if field x509Cert is set (has been assigned a value) and false otherwise */
+ public boolean isSetX509Cert() {
+ return this.x509Cert != null;
+ }
+
+ public void setX509CertIsSet(boolean value) {
+ if (!value) {
+ this.x509Cert = null;
+ }
+ }
+
+ public String getNotAfter() {
+ return this.notAfter;
+ }
+
+ public CertificateCredential setNotAfter(String notAfter) {
+ this.notAfter = notAfter;
+ return this;
+ }
+
+ public void unsetNotAfter() {
+ this.notAfter = null;
+ }
+
+ /** Returns true if field notAfter is set (has been assigned a value) and false otherwise */
+ public boolean isSetNotAfter() {
+ return this.notAfter != null;
+ }
+
+ public void setNotAfterIsSet(boolean value) {
+ if (!value) {
+ this.notAfter = null;
+ }
+ }
+
+ public String getPrivateKey() {
+ return this.privateKey;
+ }
+
+ public CertificateCredential setPrivateKey(String privateKey) {
+ this.privateKey = privateKey;
+ return this;
+ }
+
+ public void unsetPrivateKey() {
+ this.privateKey = null;
+ }
+
+ /** Returns true if field privateKey is set (has been assigned a value) and false otherwise */
+ public boolean isSetPrivateKey() {
+ return this.privateKey != null;
+ }
+
+ public void setPrivateKeyIsSet(boolean value) {
+ if (!value) {
+ this.privateKey = null;
+ }
+ }
+
+ public long getLifeTime() {
+ return this.lifeTime;
+ }
+
+ public CertificateCredential setLifeTime(long lifeTime) {
+ this.lifeTime = lifeTime;
+ setLifeTimeIsSet(true);
+ return this;
+ }
+
+ public void unsetLifeTime() {
+ __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LIFETIME_ISSET_ID);
+ }
+
+ /** Returns true if field lifeTime is set (has been assigned a value) and false otherwise */
+ public boolean isSetLifeTime() {
+ return EncodingUtils.testBit(__isset_bitfield, __LIFETIME_ISSET_ID);
+ }
+
+ public void setLifeTimeIsSet(boolean value) {
+ __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LIFETIME_ISSET_ID, value);
+ }
+
+ public String getNotBefore() {
+ return this.notBefore;
+ }
+
+ public CertificateCredential setNotBefore(String notBefore) {
+ this.notBefore = notBefore;
+ return this;
+ }
+
+ public void unsetNotBefore() {
+ this.notBefore = null;
+ }
+
+ /** Returns true if field notBefore is set (has been assigned a value) and false otherwise */
+ public boolean isSetNotBefore() {
+ return this.notBefore != null;
+ }
+
+ public void setNotBeforeIsSet(boolean value) {
+ if (!value) {
+ this.notBefore = null;
+ }
+ }
+
+ public long getPersistedTime() {
+ return this.persistedTime;
+ }
+
+ public CertificateCredential setPersistedTime(long persistedTime) {
+ this.persistedTime = persistedTime;
+ setPersistedTimeIsSet(true);
+ return this;
+ }
+
+ public void unsetPersistedTime() {
+ __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PERSISTEDTIME_ISSET_ID);
+ }
+
+ /** Returns true if field persistedTime is set (has been assigned a value) and false otherwise */
+ public boolean isSetPersistedTime() {
+ return EncodingUtils.testBit(__isset_bitfield, __PERSISTEDTIME_ISSET_ID);
+ }
+
+ public void setPersistedTimeIsSet(boolean value) {
+ __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PERSISTEDTIME_ISSET_ID, value);
+ }
+
+ public String getToken() {
+ return this.token;
+ }
+
+ public CertificateCredential setToken(String token) {
+ this.token = token;
+ return this;
+ }
+
+ public void unsetToken() {
+ this.token = null;
+ }
+
+ /** Returns true if field token is set (has been assigned a value) and false otherwise */
+ public boolean isSetToken() {
+ return this.token != null;
+ }
+
+ public void setTokenIsSet(boolean value) {
+ if (!value) {
+ this.token = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case COMMUNITY_USER:
+ if (value == null) {
+ unsetCommunityUser();
+ } else {
+ setCommunityUser((CommunityUser)value);
+ }
+ break;
+
+ case X509_CERT:
+ if (value == null) {
+ unsetX509Cert();
+ } else {
+ setX509Cert((String)value);
+ }
+ break;
+
+ case NOT_AFTER:
+ if (value == null) {
+ unsetNotAfter();
+ } else {
+ setNotAfter((String)value);
+ }
+ break;
+
+ case PRIVATE_KEY:
+ if (value == null) {
+ unsetPrivateKey();
+ } else {
+ setPrivateKey((String)value);
+ }
+ break;
+
+ case LIFE_TIME:
+ if (value == null) {
+ unsetLifeTime();
+ } else {
+ setLifeTime((Long)value);
+ }
+ break;
+
+ case NOT_BEFORE:
+ if (value == null) {
+ unsetNotBefore();
+ } else {
+ setNotBefore((String)value);
+ }
+ break;
+
+ case PERSISTED_TIME:
+ if (value == null) {
+ unsetPersistedTime();
+ } else {
+ setPersistedTime((Long)value);
+ }
+ break;
+
+ case TOKEN:
+ if (value == null) {
+ unsetToken();
+ } else {
+ setToken((String)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case COMMUNITY_USER:
+ return getCommunityUser();
+
+ case X509_CERT:
+ return getX509Cert();
+
+ case NOT_AFTER:
+ return getNotAfter();
+
+ case PRIVATE_KEY:
+ return getPrivateKey();
+
+ case LIFE_TIME:
+ return Long.valueOf(getLifeTime());
+
+ case NOT_BEFORE:
+ return getNotBefore();
+
+ case PERSISTED_TIME:
+ return Long.valueOf(getPersistedTime());
+
+ case TOKEN:
+ return getToken();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case COMMUNITY_USER:
+ return isSetCommunityUser();
+ case X509_CERT:
+ return isSetX509Cert();
+ case NOT_AFTER:
+ return isSetNotAfter();
+ case PRIVATE_KEY:
+ return isSetPrivateKey();
+ case LIFE_TIME:
+ return isSetLifeTime();
+ case NOT_BEFORE:
+ return isSetNotBefore();
+ case PERSISTED_TIME:
+ return isSetPersistedTime();
+ case TOKEN:
+ return isSetToken();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof CertificateCredential)
+ return this.equals((CertificateCredential)that);
+ return false;
+ }
+
+ public boolean equals(CertificateCredential that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_communityUser = true && this.isSetCommunityUser();
+ boolean that_present_communityUser = true && that.isSetCommunityUser();
+ if (this_present_communityUser || that_present_communityUser) {
+ if (!(this_present_communityUser && that_present_communityUser))
+ return false;
+ if (!this.communityUser.equals(that.communityUser))
+ return false;
+ }
+
+ boolean this_present_x509Cert = true && this.isSetX509Cert();
+ boolean that_present_x509Cert = true && that.isSetX509Cert();
+ if (this_present_x509Cert || that_present_x509Cert) {
+ if (!(this_present_x509Cert && that_present_x509Cert))
+ return false;
+ if (!this.x509Cert.equals(that.x509Cert))
+ return false;
+ }
+
+ boolean this_present_notAfter = true && this.isSetNotAfter();
+ boolean that_present_notAfter = true && that.isSetNotAfter();
+ if (this_present_notAfter || that_present_notAfter) {
+ if (!(this_present_notAfter && that_present_notAfter))
+ return false;
+ if (!this.notAfter.equals(that.notAfter))
+ return false;
+ }
+
+ boolean this_present_privateKey = true && this.isSetPrivateKey();
+ boolean that_present_privateKey = true && that.isSetPrivateKey();
+ if (this_present_privateKey || that_present_privateKey) {
+ if (!(this_present_privateKey && that_present_privateKey))
+ return false;
+ if (!this.privateKey.equals(that.privateKey))
+ return false;
+ }
+
+ boolean this_present_lifeTime = true && this.isSetLifeTime();
+ boolean that_present_lifeTime = true && that.isSetLifeTime();
+ if (this_present_lifeTime || that_present_lifeTime) {
+ if (!(this_present_lifeTime && that_present_lifeTime))
+ return false;
+ if (this.lifeTime != that.lifeTime)
+ return false;
+ }
+
+ boolean this_present_notBefore = true && this.isSetNotBefore();
+ boolean that_present_notBefore = true && that.isSetNotBefore();
+ if (this_present_notBefore || that_present_notBefore) {
+ if (!(this_present_notBefore && that_present_notBefore))
+ return false;
+ if (!this.notBefore.equals(that.notBefore))
+ return false;
+ }
+
+ boolean this_present_persistedTime = true && this.isSetPersistedTime();
+ boolean that_present_persistedTime = true && that.isSetPersistedTime();
+ if (this_present_persistedTime || that_present_persistedTime) {
+ if (!(this_present_persistedTime && that_present_persistedTime))
+ return false;
+ if (this.persistedTime != that.persistedTime)
+ return false;
+ }
+
+ boolean this_present_token = true && this.isSetToken();
+ boolean that_present_token = true && that.isSetToken();
+ if (this_present_token || that_present_token) {
+ if (!(this_present_token && that_present_token))
+ return false;
+ if (!this.token.equals(that.token))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ @Override
+ public int compareTo(CertificateCredential other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetCommunityUser()).compareTo(other.isSetCommunityUser());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetCommunityUser()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.communityUser, other.communityUser);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetX509Cert()).compareTo(other.isSetX509Cert());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetX509Cert()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.x509Cert, other.x509Cert);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetNotAfter()).compareTo(other.isSetNotAfter());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetNotAfter()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.notAfter, other.notAfter);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetPrivateKey()).compareTo(other.isSetPrivateKey());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetPrivateKey()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.privateKey, other.privateKey);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetLifeTime()).compareTo(other.isSetLifeTime());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetLifeTime()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lifeTime, other.lifeTime);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetNotBefore()).compareTo(other.isSetNotBefore());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetNotBefore()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.notBefore, other.notBefore);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetPersistedTime()).compareTo(other.isSetPersistedTime());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetPersistedTime()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.persistedTime, other.persistedTime);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetToken()).compareTo(other.isSetToken());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetToken()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.token, other.token);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("CertificateCredential(");
+ boolean first = true;
+
+ sb.append("communityUser:");
+ if (this.communityUser == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.communityUser);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("x509Cert:");
+ if (this.x509Cert == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.x509Cert);
+ }
+ first = false;
+ if (isSetNotAfter()) {
+ if (!first) sb.append(", ");
+ sb.append("notAfter:");
+ if (this.notAfter == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.notAfter);
+ }
+ first = false;
+ }
+ if (isSetPrivateKey()) {
+ if (!first) sb.append(", ");
+ sb.append("privateKey:");
+ if (this.privateKey == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.privateKey);
+ }
+ first = false;
+ }
+ if (isSetLifeTime()) {
+ if (!first) sb.append(", ");
+ sb.append("lifeTime:");
+ sb.append(this.lifeTime);
+ first = false;
+ }
+ if (isSetNotBefore()) {
+ if (!first) sb.append(", ");
+ sb.append("notBefore:");
+ if (this.notBefore == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.notBefore);
+ }
+ first = false;
+ }
+ if (isSetPersistedTime()) {
+ if (!first) sb.append(", ");
+ sb.append("persistedTime:");
+ sb.append(this.persistedTime);
+ first = false;
+ }
+ if (isSetToken()) {
+ if (!first) sb.append(", ");
+ sb.append("token:");
+ if (this.token == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.token);
+ }
+ first = false;
+ }
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ if (communityUser == null) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'communityUser' was not present! Struct: " + toString());
+ }
+ if (x509Cert == null) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'x509Cert' was not present! Struct: " + toString());
+ }
+ // check for sub-struct validity
+ if (communityUser != null) {
+ communityUser.validate();
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+ __isset_bitfield = 0;
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class CertificateCredentialStandardSchemeFactory implements SchemeFactory {
+ public CertificateCredentialStandardScheme getScheme() {
+ return new CertificateCredentialStandardScheme();
+ }
+ }
+
+ private static class CertificateCredentialStandardScheme extends StandardScheme<CertificateCredential> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, CertificateCredential struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // COMMUNITY_USER
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.communityUser = new CommunityUser();
+ struct.communityUser.read(iprot);
+ struct.setCommunityUserIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 2: // X509_CERT
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.x509Cert = iprot.readString();
+ struct.setX509CertIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 3: // NOT_AFTER
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.notAfter = iprot.readString();
+ struct.setNotAfterIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 4: // PRIVATE_KEY
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.privateKey = iprot.readString();
+ struct.setPrivateKeyIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 5: // LIFE_TIME
+ if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+ struct.lifeTime = iprot.readI64();
+ struct.setLifeTimeIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 6: // NOT_BEFORE
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.notBefore = iprot.readString();
+ struct.setNotBeforeIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 7: // PERSISTED_TIME
+ if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+ struct.persistedTime = iprot.readI64();
+ struct.setPersistedTimeIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 8: // TOKEN
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.token = iprot.readString();
+ struct.setTokenIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, CertificateCredential struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.communityUser != null) {
+ oprot.writeFieldBegin(COMMUNITY_USER_FIELD_DESC);
+ struct.communityUser.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ if (struct.x509Cert != null) {
+ oprot.writeFieldBegin(X509_CERT_FIELD_DESC);
+ oprot.writeString(struct.x509Cert);
+ oprot.writeFieldEnd();
+ }
+ if (struct.notAfter != null) {
+ if (struct.isSetNotAfter()) {
+ oprot.writeFieldBegin(NOT_AFTER_FIELD_DESC);
+ oprot.writeString(struct.notAfter);
+ oprot.writeFieldEnd();
+ }
+ }
+ if (struct.privateKey != null) {
+ if (struct.isSetPrivateKey()) {
+ oprot.writeFieldBegin(PRIVATE_KEY_FIELD_DESC);
+ oprot.writeString(struct.privateKey);
+ oprot.writeFieldEnd();
+ }
+ }
+ if (struct.isSetLifeTime()) {
+ oprot.writeFieldBegin(LIFE_TIME_FIELD_DESC);
+ oprot.writeI64(struct.lifeTime);
+ oprot.writeFieldEnd();
+ }
+ if (struct.notBefore != null) {
+ if (struct.isSetNotBefore()) {
+ oprot.writeFieldBegin(NOT_BEFORE_FIELD_DESC);
+ oprot.writeString(struct.notBefore);
+ oprot.writeFieldEnd();
+ }
+ }
+ if (struct.isSetPersistedTime()) {
+ oprot.writeFieldBegin(PERSISTED_TIME_FIELD_DESC);
+ oprot.writeI64(struct.persistedTime);
+ oprot.writeFieldEnd();
+ }
+ if (struct.token != null) {
+ if (struct.isSetToken()) {
+ oprot.writeFieldBegin(TOKEN_FIELD_DESC);
+ oprot.writeString(struct.token);
+ oprot.writeFieldEnd();
+ }
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class CertificateCredentialTupleSchemeFactory implements SchemeFactory {
+ public CertificateCredentialTupleScheme getScheme() {
+ return new CertificateCredentialTupleScheme();
+ }
+ }
+
+ private static class CertificateCredentialTupleScheme extends TupleScheme<CertificateCredential> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, CertificateCredential struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ struct.communityUser.write(oprot);
+ oprot.writeString(struct.x509Cert);
+ BitSet optionals = new BitSet();
+ if (struct.isSetNotAfter()) {
+ optionals.set(0);
+ }
+ if (struct.isSetPrivateKey()) {
+ optionals.set(1);
+ }
+ if (struct.isSetLifeTime()) {
+ optionals.set(2);
+ }
+ if (struct.isSetNotBefore()) {
+ optionals.set(3);
+ }
+ if (struct.isSetPersistedTime()) {
+ optionals.set(4);
+ }
+ if (struct.isSetToken()) {
+ optionals.set(5);
+ }
+ oprot.writeBitSet(optionals, 6);
+ if (struct.isSetNotAfter()) {
+ oprot.writeString(struct.notAfter);
+ }
+ if (struct.isSetPrivateKey()) {
+ oprot.writeString(struct.privateKey);
+ }
+ if (struct.isSetLifeTime()) {
+ oprot.writeI64(struct.lifeTime);
+ }
+ if (struct.isSetNotBefore()) {
+ oprot.writeString(struct.notBefore);
+ }
+ if (struct.isSetPersistedTime()) {
+ oprot.writeI64(struct.persistedTime);
+ }
+ if (struct.isSetToken()) {
+ oprot.writeString(struct.token);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, CertificateCredential struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ struct.communityUser = new CommunityUser();
+ struct.communityUser.read(iprot);
+ struct.setCommunityUserIsSet(true);
+ struct.x509Cert = iprot.readString();
+ struct.setX509CertIsSet(true);
+ BitSet incoming = iprot.readBitSet(6);
+ if (incoming.get(0)) {
+ struct.notAfter = iprot.readString();
+ struct.setNotAfterIsSet(true);
+ }
+ if (incoming.get(1)) {
+ struct.privateKey = iprot.readString();
+ struct.setPrivateKeyIsSet(true);
+ }
+ if (incoming.get(2)) {
+ struct.lifeTime = iprot.readI64();
+ struct.setLifeTimeIsSet(true);
+ }
+ if (incoming.get(3)) {
+ struct.notBefore = iprot.readString();
+ struct.setNotBeforeIsSet(true);
+ }
+ if (incoming.get(4)) {
+ struct.persistedTime = iprot.readI64();
+ struct.setPersistedTimeIsSet(true);
+ }
+ if (incoming.get(5)) {
+ struct.token = iprot.readString();
+ struct.setTokenIsSet(true);
+ }
+ }
+ }
+
+}
+
http://git-wip-us.apache.org/repos/asf/airavata/blob/58c58cf2/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/datamodel/CommunityUser.java
----------------------------------------------------------------------
diff --git a/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/datamodel/CommunityUser.java b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/datamodel/CommunityUser.java
new file mode 100644
index 0000000..9b62310
--- /dev/null
+++ b/modules/credential-store/credential-store-service/src/main/java/org/apache/airavata/credential/store/datamodel/CommunityUser.java
@@ -0,0 +1,589 @@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package org.apache.airavata.credential.store.datamodel;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class CommunityUser implements org.apache.thrift.TBase<CommunityUser, CommunityUser._Fields>, java.io.Serializable, Cloneable, Comparable<CommunityUser> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CommunityUser");
+
+ private static final org.apache.thrift.protocol.TField GATEWAY_NMAE_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayNmae", org.apache.thrift.protocol.TType.STRING, (short)1);
+ private static final org.apache.thrift.protocol.TField USERNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("username", org.apache.thrift.protocol.TType.STRING, (short)2);
+ private static final org.apache.thrift.protocol.TField USER_EMAIL_FIELD_DESC = new org.apache.thrift.protocol.TField("userEmail", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new CommunityUserStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new CommunityUserTupleSchemeFactory());
+ }
+
+ public String gatewayNmae; // required
+ public String username; // required
+ public String userEmail; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ GATEWAY_NMAE((short)1, "gatewayNmae"),
+ USERNAME((short)2, "username"),
+ USER_EMAIL((short)3, "userEmail");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // GATEWAY_NMAE
+ return GATEWAY_NMAE;
+ case 2: // USERNAME
+ return USERNAME;
+ case 3: // USER_EMAIL
+ return USER_EMAIL;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.GATEWAY_NMAE, new org.apache.thrift.meta_data.FieldMetaData("gatewayNmae", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.USERNAME, new org.apache.thrift.meta_data.FieldMetaData("username", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.USER_EMAIL, new org.apache.thrift.meta_data.FieldMetaData("userEmail", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(CommunityUser.class, metaDataMap);
+ }
+
+ public CommunityUser() {
+ }
+
+ public CommunityUser(
+ String gatewayNmae,
+ String username,
+ String userEmail)
+ {
+ this();
+ this.gatewayNmae = gatewayNmae;
+ this.username = username;
+ this.userEmail = userEmail;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public CommunityUser(CommunityUser other) {
+ if (other.isSetGatewayNmae()) {
+ this.gatewayNmae = other.gatewayNmae;
+ }
+ if (other.isSetUsername()) {
+ this.username = other.username;
+ }
+ if (other.isSetUserEmail()) {
+ this.userEmail = other.userEmail;
+ }
+ }
+
+ public CommunityUser deepCopy() {
+ return new CommunityUser(this);
+ }
+
+ @Override
+ public void clear() {
+ this.gatewayNmae = null;
+ this.username = null;
+ this.userEmail = null;
+ }
+
+ public String getGatewayNmae() {
+ return this.gatewayNmae;
+ }
+
+ public CommunityUser setGatewayNmae(String gatewayNmae) {
+ this.gatewayNmae = gatewayNmae;
+ return this;
+ }
+
+ public void unsetGatewayNmae() {
+ this.gatewayNmae = null;
+ }
+
+ /** Returns true if field gatewayNmae is set (has been assigned a value) and false otherwise */
+ public boolean isSetGatewayNmae() {
+ return this.gatewayNmae != null;
+ }
+
+ public void setGatewayNmaeIsSet(boolean value) {
+ if (!value) {
+ this.gatewayNmae = null;
+ }
+ }
+
+ public String getUsername() {
+ return this.username;
+ }
+
+ public CommunityUser setUsername(String username) {
+ this.username = username;
+ return this;
+ }
+
+ public void unsetUsername() {
+ this.username = null;
+ }
+
+ /** Returns true if field username is set (has been assigned a value) and false otherwise */
+ public boolean isSetUsername() {
+ return this.username != null;
+ }
+
+ public void setUsernameIsSet(boolean value) {
+ if (!value) {
+ this.username = null;
+ }
+ }
+
+ public String getUserEmail() {
+ return this.userEmail;
+ }
+
+ public CommunityUser setUserEmail(String userEmail) {
+ this.userEmail = userEmail;
+ return this;
+ }
+
+ public void unsetUserEmail() {
+ this.userEmail = null;
+ }
+
+ /** Returns true if field userEmail is set (has been assigned a value) and false otherwise */
+ public boolean isSetUserEmail() {
+ return this.userEmail != null;
+ }
+
+ public void setUserEmailIsSet(boolean value) {
+ if (!value) {
+ this.userEmail = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case GATEWAY_NMAE:
+ if (value == null) {
+ unsetGatewayNmae();
+ } else {
+ setGatewayNmae((String)value);
+ }
+ break;
+
+ case USERNAME:
+ if (value == null) {
+ unsetUsername();
+ } else {
+ setUsername((String)value);
+ }
+ break;
+
+ case USER_EMAIL:
+ if (value == null) {
+ unsetUserEmail();
+ } else {
+ setUserEmail((String)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case GATEWAY_NMAE:
+ return getGatewayNmae();
+
+ case USERNAME:
+ return getUsername();
+
+ case USER_EMAIL:
+ return getUserEmail();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case GATEWAY_NMAE:
+ return isSetGatewayNmae();
+ case USERNAME:
+ return isSetUsername();
+ case USER_EMAIL:
+ return isSetUserEmail();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof CommunityUser)
+ return this.equals((CommunityUser)that);
+ return false;
+ }
+
+ public boolean equals(CommunityUser that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_gatewayNmae = true && this.isSetGatewayNmae();
+ boolean that_present_gatewayNmae = true && that.isSetGatewayNmae();
+ if (this_present_gatewayNmae || that_present_gatewayNmae) {
+ if (!(this_present_gatewayNmae && that_present_gatewayNmae))
+ return false;
+ if (!this.gatewayNmae.equals(that.gatewayNmae))
+ return false;
+ }
+
+ boolean this_present_username = true && this.isSetUsername();
+ boolean that_present_username = true && that.isSetUsername();
+ if (this_present_username || that_present_username) {
+ if (!(this_present_username && that_present_username))
+ return false;
+ if (!this.username.equals(that.username))
+ return false;
+ }
+
+ boolean this_present_userEmail = true && this.isSetUserEmail();
+ boolean that_present_userEmail = true && that.isSetUserEmail();
+ if (this_present_userEmail || that_present_userEmail) {
+ if (!(this_present_userEmail && that_present_userEmail))
+ return false;
+ if (!this.userEmail.equals(that.userEmail))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ @Override
+ public int compareTo(CommunityUser other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetGatewayNmae()).compareTo(other.isSetGatewayNmae());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetGatewayNmae()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayNmae, other.gatewayNmae);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetUsername()).compareTo(other.isSetUsername());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetUsername()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.username, other.username);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetUserEmail()).compareTo(other.isSetUserEmail());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetUserEmail()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userEmail, other.userEmail);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("CommunityUser(");
+ boolean first = true;
+
+ sb.append("gatewayNmae:");
+ if (this.gatewayNmae == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.gatewayNmae);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("username:");
+ if (this.username == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.username);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("userEmail:");
+ if (this.userEmail == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.userEmail);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ if (gatewayNmae == null) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayNmae' was not present! Struct: " + toString());
+ }
+ if (username == null) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'username' was not present! Struct: " + toString());
+ }
+ if (userEmail == null) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'userEmail' was not present! Struct: " + toString());
+ }
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class CommunityUserStandardSchemeFactory implements SchemeFactory {
+ public CommunityUserStandardScheme getScheme() {
+ return new CommunityUserStandardScheme();
+ }
+ }
+
+ private static class CommunityUserStandardScheme extends StandardScheme<CommunityUser> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, CommunityUser struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // GATEWAY_NMAE
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.gatewayNmae = iprot.readString();
+ struct.setGatewayNmaeIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 2: // USERNAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.username = iprot.readString();
+ struct.setUsernameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 3: // USER_EMAIL
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.userEmail = iprot.readString();
+ struct.setUserEmailIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, CommunityUser struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.gatewayNmae != null) {
+ oprot.writeFieldBegin(GATEWAY_NMAE_FIELD_DESC);
+ oprot.writeString(struct.gatewayNmae);
+ oprot.writeFieldEnd();
+ }
+ if (struct.username != null) {
+ oprot.writeFieldBegin(USERNAME_FIELD_DESC);
+ oprot.writeString(struct.username);
+ oprot.writeFieldEnd();
+ }
+ if (struct.userEmail != null) {
+ oprot.writeFieldBegin(USER_EMAIL_FIELD_DESC);
+ oprot.writeString(struct.userEmail);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class CommunityUserTupleSchemeFactory implements SchemeFactory {
+ public CommunityUserTupleScheme getScheme() {
+ return new CommunityUserTupleScheme();
+ }
+ }
+
+ private static class CommunityUserTupleScheme extends TupleScheme<CommunityUser> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, CommunityUser struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ oprot.writeString(struct.gatewayNmae);
+ oprot.writeString(struct.username);
+ oprot.writeString(struct.userEmail);
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, CommunityUser struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ struct.gatewayNmae = iprot.readString();
+ struct.setGatewayNmaeIsSet(true);
+ struct.username = iprot.readString();
+ struct.setUsernameIsSet(true);
+ struct.userEmail = iprot.readString();
+ struct.setUserEmailIsSet(true);
+ }
+ }
+
+}
+