package org.jboss.resteasy.skeleton.key;

import java.security.KeyStore;
import java.security.PublicKey;

/**
 * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
 * @version $Revision: 1 $
 */
public class ResourceMetadata
{
   protected String resourceName;
   protected String realm;
   protected KeyStore clientKeystore;
   protected String clientKeyPassword;
   protected KeyStore truststore;
   protected PublicKey realmKey;

   public String getResourceName()
   {
      return resourceName;
   }

   public String getRealm()
   {
      return realm;
   }

  /**
    * keystore that contains service's private key and certificate.
    * Used when making invocations on remote HTTPS endpoints that require client-cert authentication
    *
    * @return
    */
   public KeyStore getClientKeystore()
   {
      return clientKeystore;
   }

   public String getClientKeyPassword()
   {
      return clientKeyPassword;
   }

   public void setClientKeyPassword(String clientKeyPassword)
   {
      this.clientKeyPassword = clientKeyPassword;
   }

   /**
    * Truststore to use if this service makes client invocations on remote HTTPS endpoints.
    *
    * @return
    */
   public KeyStore getTruststore()
   {
      return truststore;
   }

   /**
    * Public key of the realm.  Used to verify access tokens
    *
    * @return
    */
   public PublicKey getRealmKey()
   {
      return realmKey;
   }

   public void setResourceName(String resourceName)
   {
      this.resourceName = resourceName;
   }

   public void setRealm(String realm)
   {
      this.realm = realm;
   }

   public void setClientKeystore(KeyStore clientKeystore)
   {
      this.clientKeystore = clientKeystore;
   }

   public void setTruststore(KeyStore truststore)
   {
      this.truststore = truststore;
   }

   public void setRealmKey(PublicKey realmKey)
   {
      this.realmKey = realmKey;
   }
}
