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); + } + } + +} +
