4 ms·
It’s highly integrated with Wildfly (or JBoss EAP for the commercial product), so if you’re not deploying it with the Docker images expect to have fun dealing w
by snuxoll 7y ago
It’s highly integrated with Wildfly (or JBoss EAP for the commercial product), so if you’re not deploying it with the Docker images expect to have fun dealing with the special hell that is Java application servers - setting up infispan and configuring the database in JNDI at a minimum will require some moderate reading.
If you do use the Docker images it’s pretty straightforward though.
Past that, customization could be better - not because it doesn’t support it but because many of the SPI’s are poorly documented at best, or totally undocumented at worst. You’ll need to read the code and understand Java EE to do anything not supported out of the box, which, to be fair is a lot - but I’m having to spend far more time looking through code than I’d like to add a Steam login for PCGamingWiki, as an example. Thankfully I’ve dabbled with Java EE before so it’s no big deal to me, but something to consider if you wanna do something simple like add extra profile fields.
EDIT: one major nag I have is that the LDAP integration has an annoying bug related to renaming of users. Keycloak can be configured to use a GUID in an LDAP store as the link between a Keycloak user profile and an LDAP object, but when the username changes it will delete and recreate the account instead of updating the username. This creates a whole new sub identifier in the JWT assertions, which has caused me headaches.
I have a bug on file for this which just recently got updated targeting a fix in 10.0, so hopefully this gets fixed soon.
- bebop 7y agoI would agree that a pain point is the lack of documentation, examples, and googleability of the SPI's. I have spent much longer than I would have expected integrating an existing user database.
- thinkharderdev 7y agoAgree on the lack of documentation. But one thing I've found really nice is that the source code is really well structured and readable. Every time the documentation has let me down I've been able to find what I needed by reading the source code. That's one of the great underrated advantages of using open source solutions, you're not completely hamstrung when the docs don't give you what you need.
- cybrix12 7y agoIt looks like Quarkus is going to be considered for one of the next major release [1]. That said, do you believe it will still be possible to extend Keycloak using the deployment-scanner? Also, do you happen to have open-source code related to Keycloak and/or custom extensions? Beside the poor doc, finding more open-source code is one of the best way to learn this. [1]: https://issues.redhat.com/browse/KEYCLOAK-13068?jql=project%20%3D%20KEYCLOAK%20AND%20component%20%3D%20%22Distribution%20-%20Quarkus%22 https://issues.redhat.com/browse/KEYCLOAK-13068?jql=project%...
- tofflos 7y agoSome more scraps of information regarding Keycloak on Quarkus is available at https://www.keycloak.org/2019/10/keycloak-x https://www.keycloak.org/2019/10/keycloak-x. I'm hoping this will lead to significantly faster startup times so that my integration tests will run faster.
- folmar 7y ago> do you believe it will still be possible to extend Keycloak using the deployment-scanner? Even if it wouldn't bundling your keycloak-with-amenities is a 10-minutes job (1. make a pom.xml with keycloak dependency and your stuff 2. mvn package 4. there is no step 3)