Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
3.2.1
-
None
-
None
Description
Spark's failure to use a `SessionManager` causes `java.lang.IllegalStateException: No SessionManager` that prevents Spark UI from being used with org.keycloak.adapters.servlet.KeycloakOIDCFilter as the `spark.ui.filters` class.
Sample logs:
spark_1 | 22/03/29 18:43:24 INFO KeycloakDeployment: Loaded URLs from http://REDACTED/auth/realms/master/.well-known/openid-configuration
spark_1 | 22/03/29 18:43:24 WARN HttpChannel: /
spark_1 | java.lang.IllegalStateException: No SessionManager
Configuration:
spark.ui.filters=org.keycloak.adapters.servlet.KeycloakOIDCFilter
spark.acls.enable=true
spark.admin.acls=*
spark.ui.view.acls=*
spark.org.keycloak.adapters.servlet.KeycloakOIDCFilter.param.keycloak.config.file=/opt/bitnami/spark/conf/spark-keycloak.json
Above `spark-keycloak.json` contains configuration generated in the Keycloak admin console. We can see that Spark gets as far as allowing the KeycloakOIDCFilter class to read this file and initiate communication with keycloak.
This IllegalStateException exception emanates from Jetty:
It appears that Spark's `ServletContextHandler` has the ability to use a `SessionManager` but doesn't. This seems to be a blocker that prevents integration with Keycloak entirely.