Base de datos Derby para servicios OAuth persistentes
La base de datos Derby se puede utilizar para servicios OAuth persistentes. Por razones de comodidad y de consulta, en este tema se describen los pasos necesarios para configurar la base de datos Derby, ya sea de modo remoto o local respecto al servicio OAuth, para el servicio OAuth persistente.
Para configurar la base de datos Derby para los servicios
OAuth persistentes, lleve a cabo estos pasos:
- Cree una base de datos y tablas.Edite y ejecute la sentencia SQL siguiente para crear una base de datos OAuth y una tabla:
Ejecute el archivo createTables.sql iniciando ij con el mandato siguiente:--- Cambie oauth2db al nombre que desee para la base de datos --- Conéctese a Derby, elija una opción de conexión para eliminar comentario --- si se conecta a Derby como un servidor de red --- CONNECT 'jdbc:derby://localhost:1527/oauth2db;create=true'; --- si se conecta a una base de datos Derby incorporada, puede cambiar D:\oauth2db por la ubicación de la base de datos --- CONNECT 'jdbc:derby:D:\oauth2db;create=true'; --- si crea tablas en una base de datos Derby existente, elimine el parámetro create=true. ----- CREAR TABLAS ----- CREATE TABLE OAuthDBSchema.OAUTH20CACHE ( LOOKUPKEY VARCHAR(256) NOT NULL, UNIQUEID VARCHAR(128) NOT NULL, COMPONENTID VARCHAR(256) NOT NULL, TYPE VARCHAR(64) NOT NULL, SUBTYPE VARCHAR(64), CREATEDAT BIGINT, LIFETIME INT, EXPIRES BIGINT, TOKENSTRING VARCHAR(2048) NOT NULL, CLIENTID VARCHAR(64) NOT NULL, USERNAME VARCHAR(64) NOT NULL, SCOPE VARCHAR(512) NOT NULL, REDIRECTURI VARCHAR(2048), STATEID VARCHAR(64) NOT NULL EXTENDEDFIELDS CLOB NOT NULL DEFAULT '{}' ); CREATE TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG ( COMPONENTID VARCHAR(256) NOT NULL, CLIENTID VARCHAR(256) NOT NULL, CLIENTSECRET VARCHAR(256), DISPLAYNAME VARCHAR(256) NOT NULL, REDIRECTURI VARCHAR(2048), ENABLED INT CLIENTMETADATA CLOB NOT NULL DEFAULT '{}' ); CREATE TABLE OAuthDBSchema.OAUTH20CONSENTCACHE ( CLIENTID VARCHAR(256) NOT NULL, USERID VARCHAR(256), PROVIDERID VARCHAR(256) NOT NULL, SCOPE VARCHAR(1024) NOT NULL, EXPIRES BIGINT, EXTENDEDFIELDS CLOB NOT NULL DEFAULT '{}' ); ----- ADD CONSTRAINTS ----- ALTER TABLE OAuthDBSchema.OAUTH20CACHE ADD CONSTRAINT PK_LOOKUPKEY PRIMARY KEY (LOOKUPKEY); ALTER TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG ADD CONSTRAINT PK_COMPIDCLIENTID PRIMARY KEY (COMPONENTID,CLIENTID); ----- CREAR ÍNDICES ----- CREATE INDEX OAUTH20CACHE_EXPIRES ON OAUTHDBSCHEMA.OAUTH20CACHE (EXPIRES ASC); DISCONNECT CURRENT;
ij createTables.sql
- Configure el servidor WebSphere Application
Server Liberty.El ejemplo siguiente es un archivo server.xml de ejemplo para un proveedor de OAuth que utiliza un almacén de base de datos Derby:
<server> <featureManager> <feature>oauth-2.0</feature> <feature>ssl-1.0</feature> <feature>jdbc-4.0</feature> <feature>jndi-1.0</feature> </featureManager> <keyStore password="keyspass" /> <oauth-roles> <authenticated> <user>testuser</user> </authenticated> </oauth-roles> <oauthProvider id="OAuthConfigDerby" filter="request-url%=ssodemo" oauthOnly="false"> <databaseStore dataSourceRef="OAuthDerbyDataSource" /> </oauthProvider> <jdbcDriver id="DerbyEmbedded" libraryRef="DerbyLib"/> <library id="DerbyLib" filesetRef="DerbyFileset" /> <fileset id="DerbyFileset" dir="${DERBY_JDBC_DRIVER_PATH}" includes="derby.jar" /> <dataSource id="OAuthDerbyDataSource" jndiName="jdbc/OAuth2DB" jdbcDriverRef="DerbyEmbedded"> <properties.derby.embedded databaseName="D:\oauth2db" createDatabase="create" /> </dataSource> <webAppSecurity allowFailOverToBasicAuth="true" /> <basicRegistry id="basic" realm="BasicRealm"> <user name="testuser" password="testuserpwd" /> </basicRegistry> </server>
Nota: El valor Componentid debe ser el mismo que el ID del elemento oauthProvider en el archivo server.xml.