keycloak-scim/testsuite/integration-arquillian/test-apps/servlet-authz
2023-01-03 13:03:26 +01:00
..
src/main Some authorization adapter test failing on Java 17 2023-01-03 13:03:26 +01:00
keycloak-cache-disabled-authz-service.json [KEYCLOAK-7029] - Configuration of cache policies for cached resources/path 2018-04-03 16:44:27 -03:00
keycloak-cache-lifespan-authz-service.json KEYCLOAK-7922 Use Time.currentTimeMillis() instead of System.currentTimeMillis() in PathCache 2018-07-24 08:52:48 -03:00
keycloak-claim-information-point-authz-service.json [KEYCLOAK-11712] - Request body not buffered when using body CIP in Undertow 2020-01-09 10:02:18 +01:00
keycloak-lazy-load-authz-service.json [KEYCLOAK-7028] - Propagating AuthorizationContext when enforcement-mode is disable for a path 2018-04-02 11:10:43 -03:00
keycloak-permissive-authz-service.json [KEYCLOAK-3169] - UMA 2.0 (#4368) 2018-02-28 08:53:10 +01:00
pom.xml Set version to 999-SNAPSHOT (#10784) 2022-03-22 09:22:48 +01:00
README.md [KEYCLOAK-3372] - Adding tests for servlet authorization 2016-07-29 12:42:53 -03:00
servlet-authz-app-authz-service.json Removing upload scripts feature (#11117) 2022-04-20 14:25:16 +02:00
servlet-authz-realm.json [KEYCLOAK-11712] - Request body not buffered when using body CIP in Undertow 2020-01-09 10:02:18 +01:00

About the Example Application

This is a simple Servlet-based application that will introduce you to some of the main concepts around Keycloak Authorization Services.

For this application, users can be regular users, premium users or administrators, where:

  • Regular users have very limited access.
  • Premium users have access to the premium area
  • Administrators have access to the administration area

In Keycloak, all the paths being protected are resources on the server.

This application will also show you how to create a dynamic menu with the permissions granted to an user.

Create the Example Realm and a Resource Server

Considering that your Keycloak Server is up and running, log in to the Keycloak Administration Console.

Now, create a new realm based on the following configuration file:

examples/authz/servlet-authz/servlet-authz-realm.json

That will import a pre-configured realm with everything you need to run this example. For more details about how to import a realm into Keycloak, check the Keycloak's reference documentation.

After importing that file, you'll have a new realm called servlet-authz.

Now, let's import another configuration using the Administration Console in order to configure the client application servlet-authz-app as a resource server with all resources, scopes, permissions and policies.

Click on Clients on the left side menu. Click on the servlet-authz-app on the client listing page. This will open the Client Details page. Once there, click on the Authorization tab.

Click on the Select file button, which means you want to import a resource server configuration. Now select the file that is located at:

examples/authz/servlet-authz/servlet-authz-app-config.json

Now click Upload and the resource server will be updated accordingly.

Deploy and Run the Example Applications

To deploy the example application, follow these steps:

cd examples/authz/servlet-authz
mvn clean package wildfly:deploy

Now, try to access the client application using the following URL:

http://localhost:8080/servlet-authz-app

If everything is correct, you will be redirect to Keycloak login page. You can login to the application with the following credentials:

  • username: jdoe / password: jdoe
  • username: alice / password: alice
  • username: admin / password: admin