airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lah...@apache.org
Subject [51/53] [abbrv] airavata git commit: adding credential store server handler - AIRAVATA-1561
Date Fri, 06 Feb 2015 16:06:04 GMT
http://git-wip-us.apache.org/repos/asf/airavata/blob/7f898809/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/exception/CredentialStoreException.java
----------------------------------------------------------------------
diff --git a/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/exception/CredentialStoreException.java
b/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/exception/CredentialStoreException.java
new file mode 100644
index 0000000..7be01da
--- /dev/null
+++ b/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/exception/CredentialStoreException.java
@@ -0,0 +1,397 @@
+    /*
+     * 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.exception;
+
+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 CredentialStoreException extends TException implements
org.apache.thrift.TBase<CredentialStoreException, CredentialStoreException._Fields>,
java.io.Serializable, Cloneable, Comparable<CredentialStoreException> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CredentialStoreException");
+
+  private static final org.apache.thrift.protocol.TField MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("message",
org.apache.thrift.protocol.TType.STRING, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes =
new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new CredentialStoreExceptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new CredentialStoreExceptionTupleSchemeFactory());
+  }
+
+  public String message; // 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
{
+    MESSAGE((short)1, "message");
+
+    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: // MESSAGE
+          return MESSAGE;
+        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.MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("message",
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(CredentialStoreException.class,
metaDataMap);
+  }
+
+  public CredentialStoreException() {
+  }
+
+  public CredentialStoreException(
+    String message)
+  {
+    this();
+    this.message = message;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public CredentialStoreException(CredentialStoreException other) {
+    if (other.isSetMessage()) {
+      this.message = other.message;
+    }
+  }
+
+  public CredentialStoreException deepCopy() {
+    return new CredentialStoreException(this);
+  }
+
+  @Override
+  public void clear() {
+    this.message = null;
+  }
+
+  public String getMessage() {
+    return this.message;
+  }
+
+  public CredentialStoreException setMessage(String message) {
+    this.message = message;
+    return this;
+  }
+
+  public void unsetMessage() {
+    this.message = null;
+  }
+
+  /** Returns true if field message is set (has been assigned a value) and false otherwise
*/
+  public boolean isSetMessage() {
+    return this.message != null;
+  }
+
+  public void setMessageIsSet(boolean value) {
+    if (!value) {
+      this.message = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case MESSAGE:
+      if (value == null) {
+        unsetMessage();
+      } else {
+        setMessage((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case MESSAGE:
+      return getMessage();
+
+    }
+    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 MESSAGE:
+      return isSetMessage();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof CredentialStoreException)
+      return this.equals((CredentialStoreException)that);
+    return false;
+  }
+
+  public boolean equals(CredentialStoreException that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_message = true && this.isSetMessage();
+    boolean that_present_message = true && that.isSetMessage();
+    if (this_present_message || that_present_message) {
+      if (!(this_present_message && that_present_message))
+        return false;
+      if (!this.message.equals(that.message))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(CredentialStoreException other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetMessage()).compareTo(other.isSetMessage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMessage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.message, other.message);
+      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("CredentialStoreException(");
+    boolean first = true;
+
+    sb.append("message:");
+    if (this.message == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.message);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (message == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'message' 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 CredentialStoreExceptionStandardSchemeFactory implements SchemeFactory
{
+    public CredentialStoreExceptionStandardScheme getScheme() {
+      return new CredentialStoreExceptionStandardScheme();
+    }
+  }
+
+  private static class CredentialStoreExceptionStandardScheme extends StandardScheme<CredentialStoreException>
{
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, CredentialStoreException
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: // MESSAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.message = iprot.readString();
+              struct.setMessageIsSet(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, CredentialStoreException
struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.message != null) {
+        oprot.writeFieldBegin(MESSAGE_FIELD_DESC);
+        oprot.writeString(struct.message);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class CredentialStoreExceptionTupleSchemeFactory implements SchemeFactory
{
+    public CredentialStoreExceptionTupleScheme getScheme() {
+      return new CredentialStoreExceptionTupleScheme();
+    }
+  }
+
+  private static class CredentialStoreExceptionTupleScheme extends TupleScheme<CredentialStoreException>
{
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, CredentialStoreException
struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.message);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, CredentialStoreException
struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.message = iprot.readString();
+      struct.setMessageIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/7f898809/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/server/CredentialStoreServerHandler.java
----------------------------------------------------------------------
diff --git a/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/server/CredentialStoreServerHandler.java
b/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/server/CredentialStoreServerHandler.java
index 56c9ffd..ce54319 100644
--- a/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/server/CredentialStoreServerHandler.java
+++ b/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/server/CredentialStoreServerHandler.java
@@ -1,44 +1,117 @@
 package org.apache.airavata.credential.store.server;
 
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.ApplicationSettings;
+import org.apache.airavata.common.utils.DBUtil;
+import org.apache.airavata.common.utils.DefaultKeyStorePasswordCallback;
+import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.credential.store.cpi.CredentialStoreService;
+import org.apache.airavata.credential.store.cpi.cs_cpi_serviceConstants;
 import org.apache.airavata.credential.store.datamodel.CertificateCredential;
 import org.apache.airavata.credential.store.datamodel.PasswordCredential;
 import org.apache.airavata.credential.store.datamodel.SSHCredential;
+import org.apache.airavata.credential.store.store.CredentialStoreException;
+import org.apache.airavata.credential.store.store.impl.db.CredentialsDAO;
+import org.apache.airavata.credential.store.util.TokenGenerator;
 import org.apache.thrift.TException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.sql.Connection;
+import java.sql.SQLException;
 
 public class CredentialStoreServerHandler implements CredentialStoreService.Iface {
+    protected static Logger log = LoggerFactory.getLogger(CredentialStoreServerHandler.class);
+    private DBUtil dbUtil;
+    private CredentialsDAO credentialsDAO;
+
+    public CredentialStoreServerHandler() throws ApplicationSettingsException, IllegalAccessException,
ClassNotFoundException, InstantiationException {
+        String jdbcUrl = ServerSettings.getCredentialStoreDBURL();
+        String userName = ServerSettings.getCredentialStoreDBUser();
+        String password = ServerSettings.getCredentialStoreDBPassword();
+        String driverName = ServerSettings.getCredentialStoreDBDriver();
+
+        log.debug("Starting credential store, connecting to database - " + jdbcUrl + " DB
user - " + userName + " driver name - " + driverName);
+        dbUtil = new DBUtil(jdbcUrl, userName, password, driverName);
+        this.credentialsDAO = new CredentialsDAO(ApplicationSettings.getCredentialStoreKeyStorePath(),
+                ApplicationSettings.getCredentialStoreKeyAlias(), new DefaultKeyStorePasswordCallback());
+    }
+
     @Override
     public String getCSServiceVersion() throws TException {
-        return null;
+        return cs_cpi_serviceConstants.CS_CPI_VERSION;
     }
 
     @Override
-    public String addSSHCredential(SSHCredential sshCredential) throws TException {
-        return null;
+    public String addSSHCredential(SSHCredential sshCredential) throws org.apache.airavata.credential.store.exception.CredentialStoreException,
TException {
+        Connection connection = null;
+        org.apache.airavata.credential.store.credential.impl.ssh.SSHCredential credential
= new org.apache.airavata.credential.store.credential.impl.ssh.SSHCredential();
+        credential.setGateway(sshCredential.getGatewayId());
+        credential.setPortalUserName(sshCredential.getUsername());
+        // only username and gateway id will be sent by client.
+        String token = TokenGenerator.generateToken(sshCredential.getGatewayId(), null);
+        credential.setToken(token);
+        credential.setPassphrase(sshCredential.getPassphrase());
+        if (sshCredential.getPrivateKey() != null){
+            credential.setPrivateKey(sshCredential.getPrivateKey().getBytes());
+        }
+        if (sshCredential.getPublicKey() != null){
+            credential.setPublicKey(sshCredential.getPublicKey().getBytes());
+        }
+        try {
+            connection = dbUtil.getConnection();
+            // First delete existing credentials
+            credentialsDAO.deleteCredentials(sshCredential.getGatewayId(), sshCredential.getToken(),
connection);
+            // Add the new certificate
+            credentialsDAO.addCredentials(sshCredential.getGatewayId(), credential, connection);
+
+            if (!connection.getAutoCommit()) {
+                connection.commit();
+            }
+            return token;
+
+        } catch (SQLException e) {
+            if (connection != null) {
+                try {
+                    connection.rollback();
+                } catch (SQLException e1) {
+                    log.error("Unable to rollback transaction", e1);
+                }
+            }
+            log.error("Unable to retrieve database connection.", e);
+            throw new org.apache.airavata.credential.store.exception.CredentialStoreException("Unable
to retrieve database connection.");
+        } catch (CredentialStoreException e) {
+            log.error("Error occurred while saving SSH Credentials.", e);
+            throw new org.apache.airavata.credential.store.exception.CredentialStoreException("Error
occurred while saving SSH Credentials.");
+        } finally {
+            DBUtil.cleanup(connection);
+        }
     }
 
     @Override
-    public String addCertificateCredential(CertificateCredential certificateCredential) throws
TException {
+    public String addCertificateCredential(CertificateCredential certificateCredential) throws
org.apache.airavata.credential.store.exception.CredentialStoreException, TException {
         return null;
     }
 
     @Override
-    public String addPasswordCredential(PasswordCredential passwordCredential) throws TException
{
+    public String addPasswordCredential(PasswordCredential passwordCredential) throws org.apache.airavata.credential.store.exception.CredentialStoreException,
TException {
         return null;
     }
 
     @Override
-    public SSHCredential getSSHCredential(String tokenId) throws TException {
+    public SSHCredential getSSHCredential(String tokenId) throws org.apache.airavata.credential.store.exception.CredentialStoreException,
TException {
         return null;
     }
 
     @Override
-    public CertificateCredential getCertificateCredential(String tokenId) throws TException
{
+    public CertificateCredential getCertificateCredential(String tokenId) throws org.apache.airavata.credential.store.exception.CredentialStoreException,
TException {
         return null;
     }
 
     @Override
-    public PasswordCredential getPasswordCredential(String tokenId) throws TException {
+    public PasswordCredential getPasswordCredential(String tokenId) throws org.apache.airavata.credential.store.exception.CredentialStoreException,
TException {
         return null;
     }
+
+
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/7f898809/modules/credential-store-service/cs-thrift-description/credentialStoreErrors.thrift
----------------------------------------------------------------------
diff --git a/modules/credential-store-service/cs-thrift-description/credentialStoreErrors.thrift
b/modules/credential-store-service/cs-thrift-description/credentialStoreErrors.thrift
new file mode 100644
index 0000000..148d7f2
--- /dev/null
+++ b/modules/credential-store-service/cs-thrift-description/credentialStoreErrors.thrift
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ *
+ */
+
+/*
+* This file describes the definitions of the Error Messages that can occur
+*  when invoking Apache Airavata Services through the API. In addition Thrift provides
+*  built in funcationality to raise TApplicationException for all internal server errors.
+*/
+
+namespace java org.apache.airavata.credential.store.exception
+namespace php Airavata.Credential.Store.Error
+
+exception CredentialStoreException {
+  1: required string message
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7f898809/modules/credential-store-service/cs-thrift-description/cs.cpi.service.thrift
----------------------------------------------------------------------
diff --git a/modules/credential-store-service/cs-thrift-description/cs.cpi.service.thrift
b/modules/credential-store-service/cs-thrift-description/cs.cpi.service.thrift
index 859b6f5..9191bd2 100644
--- a/modules/credential-store-service/cs-thrift-description/cs.cpi.service.thrift
+++ b/modules/credential-store-service/cs-thrift-description/cs.cpi.service.thrift
@@ -24,7 +24,7 @@
 */
 
 include "csDataModel.thrift"
-include "airavataErrors.thrift"
+include "credentialStoreErrors.thrift"
 
 namespace java org.apache.airavata.credential.store.cpi
 
@@ -38,12 +38,12 @@ service CredentialStoreService {
   /**
   * This method is to add SSHCredential which will return the token Id in success
   **/
-  string addSSHCredential (1: required csDataModel.SSHCredential sshCredential) ;
-  string addCertificateCredential (1: required csDataModel.CertificateCredential certificateCredential);
-  string addPasswordCredential (1: required csDataModel.PasswordCredential passwordCredential);
-  csDataModel.SSHCredential getSSHCredential (1: required string tokenId);
-  csDataModel.CertificateCredential getCertificateCredential (1: required string tokenId);
-  csDataModel.PasswordCredential getPasswordCredential (1: required string tokenId);
+  string addSSHCredential (1: required csDataModel.SSHCredential sshCredential) throws (1:credentialStoreErrors.CredentialStoreException
csException) ;
+  string addCertificateCredential (1: required csDataModel.CertificateCredential certificateCredential)
throws (1:credentialStoreErrors.CredentialStoreException csException);
+  string addPasswordCredential (1: required csDataModel.PasswordCredential passwordCredential)
throws (1:credentialStoreErrors.CredentialStoreException csException);
+  csDataModel.SSHCredential getSSHCredential (1: required string tokenId) throws (1:credentialStoreErrors.CredentialStoreException
csException);
+  csDataModel.CertificateCredential getCertificateCredential (1: required string tokenId)
throws (1:credentialStoreErrors.CredentialStoreException csException);
+  csDataModel.PasswordCredential getPasswordCredential (1: required string tokenId) throws
(1:credentialStoreErrors.CredentialStoreException csException);
 
 
 


Mime
View raw message