Objetos de memoria caché dinámica para OAuth
El soporte de OAuth de WebSphere Application Server proporciona dos opciones para la persistencia de señal y de cliente de OAuth: en memoria y base de datos.
Para los clientes y las señales en memoria, los clientes permanecen en el sistema de archivos y las señales permanecen en la memoria. Hay interfaces de MBean disponibles para añadir o eliminar clientes, que sincronizan los cambios en un clúster y hacen que los cambios persistan en el sistema de archivos. Las señales se gestionan utilizando objetos de la memoria caché dinámica o correlaciones hash en memoria locales si no se especifica ninguna memoria caché dinámica.
En la implementación de la base de datos, también se utilizan objetos de memoria caché dinámica para respaldar la persistencia de la base de datos tanto para la tabla de clientes como para la tabla de señales. Normalmente la memoria caché que respalda la base de datos es una correlación hash débil basada en una política utilizada menos recientemente. Los datos de las memorias caché se utilizan si se encuentran, de modo que se evitan consultas de base de datos para los datos que se utilizan con frecuencia y se aumenta el rendimiento. Si no se especifica ninguna memoria caché dinámica para la base de datos, se utiliza una correlación hash en memoria local en su lugar.
Para los entornos de OAuth que no están en clúster, la configuración de memoria caché dinámica no es necesaria.
Valores predeterminados
Los objetos de la memoria caché dinámica son muy configurables y ajustables para maximizar el rendimiento. De forma predeterminada, el servicio OAuth crea instancias de memoria caché dinámica con valores predeterminados razonables en la mayoría de los entornos.
cache.instance.0=/services/cache/OAuth20MemTokenCache
cache.instance.0.cacheSize=1000
cache.instance.0.enableDiskOffload=true
cache.instance.0.flushToDiskOnStop=true
cache.instance.0.useListenerContext=false
cache.instance.0.enableCacheReplication=true
cache.instance.0.replicationDomain=DynaCacheCluster
cache.instance.1=/services/cache/OAuth20MemTokenOwnerCache
cache.instance.1.cacheSize=1000
cache.instance.1.enableDiskOffload=true
cache.instance.1.flushToDiskOnStop=true
cache.instance.1.useListenerContext=false
cache.instance.1.enableCacheReplication=true
cache.instance.1.replicationDomain=DynaCacheCluster
cache.instance.2=/services/cache/OAuth20DBTokenCache
cache.instance.2.cacheSize=1000
cache.instance.2.enableDiskOffload=false
cache.instance.2.flushToDiskOnStop=false
cache.instance.2.useListenerContext=false
cache.instance.2.enableCacheReplication=true
cache.instance.2.replicationDomain=DynaCacheCluster
cache.instance.3=/services/cache/OAuth20DBClientCache
cache.instance.3.cacheSize=1000
cache.instance.3.enableDiskOffload=false
cache.instance.3.flushToDiskOnStop=false
cache.instance.3.useListenerContext=false
cache.instance.3.enableCacheReplication=true
cache.instance.3.replicationDomain=DynaCacheCluster
Para que estas memorias caché se utilicen correctamente en un clúster, los nodos del clúster deben estar configurados para utilizar un dominio de réplica denominado DynaCacheCluster. No se necesita ninguna configuración adicional aparte de establecer el dominio de réplica.
Configuración avanzada
Sólo puede especificarse un dominio de réplica por nodo. Los nodos de clúster que ya tienen un dominio de réplica configurado requieren configuración avanzada para crear objetos de memoria caché dinámica para el dominio de réplica existente. Los entornos que utilizan objetos de memoria caché dinámica ajustados, por ejemplo para ampliar el tamaño de la memoria caché, también deben utilizar la configuración avanzada.
- Cree las instancias de la memoria caché dinámica en el entorno de WebSphere Application Server. Consulte la documentación existente sobre los objetos de memoria caché dinámica para obtener detalles sobre opciones concretas. Los valores predeterminados mostrados anteriormente pueden utilizarse para empezar. El nombre del dominio de réplica es especialmente importante, ya que debe coincidir con el dominio de réplica para entornos que tienen un dominio de réplica ya configurado.
- Modifique los valores de configuración del proveedor OAuth para los nombres JNDI (Java™ Naming and Directory Interface) de los nuevos objetos de memoria caché dinámica.
- Si utiliza la persistencia en memoria, los nombres de los parámetros son:
yoauth20.token.cache.jndi.tokens
oauth20.token.cache.jndi.users
- Si utiliza la persistencia de base de datos, los nombres de los parámetros son:
yoauth20.db.token.cache.jndi.tokens
oauth20.db.token.cache.jndi.clients
- Si utiliza la persistencia en memoria, los nombres de los parámetros son:
Si los objetos de la memoria caché dinámica están configurados incorrectamente, se sustituyen por mapas de correlación en memoria locales. Los mapas de correlación permiten aumentar el rendimiento, pero los datos no se replican entre nodos de un clúster. Esto resulta importante para la invalidación de la memoria caché. Por ejemplo, los usuarios que revocan sus señales OAuth en un entorno configurado incorrectamente pueden seguir teniendo acceso mediante sus señales OAuth en otros nodos, hasta que la señal caduque.
Los entornos que no permiten la revocación de la señal, o entornos que puede permitir la incoherencia de señales durante toda la vida útil de la señal, también tienen la opción de inhabilitar la memoria caché dinámica o la invalidación de la memoria caché. La inhabilitación de la memoria caché dinámica da como resultado una mayor rendimiento a costa del periodo de acceso más largo.