From 6355629639604d8698c20f86f58417af9a645d5f Mon Sep 17 00:00:00 2001 From: Bill Burke Date: Tue, 26 Apr 2016 23:02:53 -0400 Subject: [PATCH] more --- SUMMARY.adoc | 5 ++ book.json | 4 ++ keycloak-images/db-module.png | Bin 0 -> 8482 bytes rhsso-images/db-module.png | Bin 0 -> 8762 bytes topics/database.adoc | 62 +++++++++++++++++++ topics/manage.adoc | 53 +++++++++++++++++ topics/mongo.adoc | 95 ++++++++++++++++++++++++++++++ topics/operating-mode/domain.adoc | 2 +- 8 files changed, 220 insertions(+), 1 deletion(-) create mode 100755 keycloak-images/db-module.png create mode 100755 rhsso-images/db-module.png create mode 100755 topics/database.adoc create mode 100755 topics/manage.adoc create mode 100755 topics/mongo.adoc diff --git a/SUMMARY.adoc b/SUMMARY.adoc index 7e4200ac59..99e8c66513 100755 --- a/SUMMARY.adoc +++ b/SUMMARY.adoc @@ -17,6 +17,11 @@ .. link:topics/operating-mode/standalone.adoc[Standalone Mode] .. link:topics/operating-mode/standalone-ha.adoc[Standalone Clustered Mode] .. link:topics/operating-mode/domain.adoc[Domain Clustered Mode] + . link:topics/management.adoc[Managing Config at Runtime] + . link:topics/database.adoc[Relational Database Setup] + {% if book.community %} + . link:topics/mongo.adoc[Mongo DB Setup] + {% endif %} . link:topics/cache.adoc[Server Cache] . link:topics/clustering.adoc[Clustering] . link:topics/management.adoc[Runtime Management] diff --git a/book.json b/book.json index e0480933da..5dd8eddcf8 100755 --- a/book.json +++ b/book.json @@ -18,6 +18,10 @@ "admindoc": { "name": "JBoss EAP Administration and Configuration Guide", "link": "https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6.4/html/Administration_and_Configuration_Guide/" + }, + "datasource": { + "name": "JBoss EAP Administration and Configuration Guide", + "link": "https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6.4/html/Administration_and_Configuration_Guide/chap-Datasource_Management.html" } }, "caching": { diff --git a/keycloak-images/db-module.png b/keycloak-images/db-module.png new file mode 100755 index 0000000000000000000000000000000000000000..1e39af22a8e5fae3072d1406a0b91acfc20d25ae GIT binary patch literal 8482 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

W7wH$Qj zHO;m)(VdXY*KI*ffLzvd{q0A${FxqBVMO z!r_KN{-@c`=?DK;Vf{=H;cvcvursv;11bF6ojoE78O-F?YtwxL{I3CoQqoe)zh?31 F{{RIFMpOU* literal 0 HcmV?d00001 diff --git a/rhsso-images/db-module.png b/rhsso-images/db-module.png new file mode 100755 index 0000000000000000000000000000000000000000..a55355c1f044460f7e89c16ebcc5291f7e820d0f GIT binary patch literal 8762 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 p{Da!-a27P#-%D*`(6M5 literal 0 HcmV?d00001 diff --git a/topics/database.adoc b/topics/database.adoc new file mode 100755 index 0000000000..0a22c68337 --- /dev/null +++ b/topics/database.adoc @@ -0,0 +1,62 @@ +[[_database]] + +== Relational Database Setup + +Out of the box, {{book.project.name}} persists its data using the Hibernate JPA set of APIs on top of an embedded Java based relational database. +The built-in database is not viable in high load and high concurrency situations. It cannot be used in a cluster either. It is +highly recommended that you replace the default embedded database with a more scalable and reliable solution like PostgreSQL or MySql. This +chapter will show you how to configure {{book.project.name}} to use an external relational database. It will also discuss +how you can configure the Hibernate JPA persistence abstraction that sits on top of your RDBMS. + +NOTE: Datasource configuration is covered much more thoroughly within the link:{{book.appserver.database.link}}[the datasource configuration chapter] + of the {{book.appserver.admindoc.name}}. + +=== RDBMS Checklist + +These are the steps you will need to perform to get an RDBMS configured for {{book.project.name}}. + +. Locate and download a JDBC driver for your database +. Package the driver JAR into a module and install this module into the server +. Declare the JDBC driver in the configuration profile of the server +. Modify the datasource configuration to use your database's JDBC driver +. Modify the datasource configuration to define the connection parameters to your database + +This chapter will use PostgresSQL for all its examples. Other databases follow the same steps for installation. + +=== Package the JDBC Driver + +Find and download the JDBC driver JAR for your RDBMS. Before you can use this driver, you must package it up into a module. +Modules define JARs that are loaded into the {{book.project.name}} classpath and the dependencies those JARs have on +other modules. They are pretty simple to set up. + +Within the _.../modules/system/layers/keycloak/_ directory of your +{{book.project.name}} distribution, you need to create a directory structure to hold your module definition. The convention is use the Java package name +of the JDBC driver for the name of the directory structure. For PostgreSQL, create the directory _org/postgresql/main_. Copy your database +driver JAR into this directory and also create an empty _module.xml_ file. + +.Module Directory +image:../../{{book.images}}/db-module.png[] + +After you have done this, open up the _module.xml_ file and create the following XML + +.Module XML +[source,xml] +---- + + + + + + + + + + + + +---- + +The module name should match the directory structure of your module. _org/postgresql_ maps to +org.postgresql+. The ++resource-root path+ attribute should specify the JAR filename. The rest are just the normal dependencies that +any JDBC driver JAR would have. + diff --git a/topics/manage.adoc b/topics/manage.adoc new file mode 100755 index 0000000000..8f8de1f966 --- /dev/null +++ b/topics/manage.adoc @@ -0,0 +1,53 @@ +[[_app_server_cli]] + +== Manage Configuration at Runtime + +In the upcoming chapters, you'll often be provided two options for applying application server configuration changes to your deployment. You'll be +shown how to edit the _standalone.xml_ or _domain.xml_ directly. This must be done when the server (or servers) are offline. +Additionally, you may be shown how to apply config changes on a running server using the app server's command line interface ({{books.appserver.name}} CLI). This chapter discusses +how you will do this. + +=== Start the {{books.appserver.name}} CLI + +To start the {{books.appserver.name}} CLI, you need to run the +jboss-cli+ script. + +.Linux/Unix +[source] +---- +$ .../bin/jboss-cli.sh +---- + +.Windows +[source] +---- +> ...\bin\jboss-cli.bat +---- + +This will bring you to a prompt like this: + +.Prompt +[source] +---- +[disconnected /] +---- + +There's a few commands you can execute without a running standalone server or domain controller, but usually you will +have to have those services booted up before you can execute CLI commands. To connect to a running server simply +execute the +connect+ command. + +.connect +[source] +---- +[disconnected /] connect +connect +[domain@localhost:9990 /] +---- + +You may be thinking to yourself, "I didn't enter in any username or password!". If you run +jboss-cli+ on the same machine +as your running standalone server or domain controller and your account has appropriate file permissions, you do not have +to setup or enter in a admin username and password. See the link:{{book.appserver.admindoc.link}}[{{book.appserver.admindoc.name}}] +for more details on how to make things more secure if you are uncomfortable with that setup. + + + + diff --git a/topics/mongo.adoc b/topics/mongo.adoc new file mode 100755 index 0000000000..400b529102 --- /dev/null +++ b/topics/mongo.adoc @@ -0,0 +1,95 @@ +[[_mongo]] + +== Mongo DB Setup + +You are not stuck with using a RDBMS for persisting data. {{book.project.name}} +provides http://www.mongodb.com[MongoDB] based model implementation. +To configure {{book.project.name}} to use Mongo, you need to edit the _keycloak-server.json_ file. If you are running +in standalone mode, this file is in the _.../standalone/configuration_ directory. If you are running in domain mode +this file will live in the _.../domain/servers/{server name}/configuration_ directory. + +[source,json] +---- + +"eventsStore": { + "provider": "jpa", + "jpa": { + "exclude-events": [ "REFRESH_TOKEN" ] + } +}, + +"realm": { + "provider": "jpa" +}, + +"user": { + "provider": "${keycloak.user.provider:jpa}" +}, +---- +to: + +[source,json] +---- + +"eventsStore": { + "provider": "mongo", + "mongo": { + "exclude-events": [ "REFRESH_TOKEN" ] + } +}, + +"realm": { + "provider": "mongo" +}, + +"user": { + "provider": "mongo" +}, +---- +And at the end of the file add the snippet like this where you can configure details about your Mongo database: + +[source,json] +---- + +"connectionsMongo": { + "default": { + "host": "127.0.0.1", + "port": "27017", + "db": "keycloak", + "connectionsPerHost": 100, + "databaseSchema": "update" + } +} +---- +All configuration options are optional. +Default values for host and port are localhost and 27017. +Default name of database is `keycloak` . You can also specify properties `user` and `password` if you want authenticate against your MongoDB. +If user and password are not specified, Keycloak will connect unauthenticated to your MongoDB. + +Finally there is set of optional configuration options, which can be used to specify connection-pooling capabilities of Mongo client. +Supported int options are: `connectionsPerHost`, `threadsAllowedToBlockForConnectionMultiplier`, `maxWaitTime`, `connectTimeout` `socketTimeout`. +Supported boolean options are: `socketKeepAlive`, `autoConnectRetry`. +Supported long option is `maxAutoConnectRetryTime`. +See http://api.mongodb.org/java/2.11.4/com/mongodb/MongoClientOptions.html[Mongo documentation] for details about those options and their default values. + +Alternatively, you can configure MongoDB using a MongoDB http://docs.mongodb.org/manual/reference/connection-string/[connection URI]. +In this case, you define all information concerning the connection and authentication within the URI, as described in the MongoDB documentation. +Please note that the database specified within the URI is only used for authentication. +To change the database used by keycloak you have to set `db` property as before. +Therefore, a configuration like the following + +[source] +---- + +"connectionsMongo": { + "default": { + "uri": "mongodb://user:password@127.0.0.1/authentication", + "db": "keycloak" + } +} +---- +will authenticate the user against the authentication database, but store all keycloak related data in the keycloak database. + +==== MongoDB Replica Sets + +In order to use a mongo replica set for Keycloak, one has to use URI based configuration, which supports the definition of replica sets out of the box: `mongodb://host1:27017,host2:27017,host3:27017/`. diff --git a/topics/operating-mode/domain.adoc b/topics/operating-mode/domain.adoc index 61186d08cf..768078f916 100755 --- a/topics/operating-mode/domain.adoc +++ b/topics/operating-mode/domain.adoc @@ -225,7 +225,7 @@ $ add-user.sh To represent the user add the following to the server-identities definition ---- -Now cut and paste the secret value into the .../domain/configuration/host-slave.xml_ file: +Now cut and paste the secret value into the _.../domain/configuration/host-slave.xml_ file: [source,xml] ----