# Custom Registration Flow

**URL:** <https://forum.keycloak.org/t/custom-registration-flow/1300>\
**Category:** Getting advice\
**Created:** [February 18, 2020, 4:19pm UTC](https://forum.keycloak.org/t/custom-registration-flow/1300 "2020-02-18T16:19:02Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![daloulou](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/daloulou/32/411_2.png) [@daloulou](https://forum.keycloak.org/u/daloulou)\
**Post date:** [February 18, 2020, 4:19pm UTC](https://forum.keycloak.org/t/custom-registration-flow/1300/1 "2020-02-18T16:19:02Z")

</div>

Hi,

I would like to know what are the differents steps to customize Keycloak Registration Flow and if some of you have some example of implementation of it.

Thanks,

Dan

---

<div class="post-metadata">

**Author:** ![M3lkior](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/m3lkior/32/388_2.png) [@M3lkior](https://forum.keycloak.org/u/M3lkior)\
**Post date:** [February 21, 2020, 4:04pm UTC](https://forum.keycloak.org/t/custom-registration-flow/1300/2 "2020-02-21T16:04:56Z")

</div>

Hello @daloulou, what are your needs ?

You can use or override each of the execution below by creation a new Flow :

 ![image](https://global.discourse-cdn.com/free1/uploads/keycloak/original/1X/b8dc608133d7ca943620e4390bc583e1fc380b35.png)

If you want to create new execution,

- here is [the official documentation](https://www.keycloak.org/docs/latest/server_development/#modifying-extending-the-registration-form)
- the [Keycloak source code](https://github.com/keycloak/keycloak/tree/master/services/src/main/java/org/keycloak/authentication/forms) provided the feature

---

<div class="post-metadata">

**Author:** ![daloulou](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/daloulou/32/411_2.png) [@daloulou](https://forum.keycloak.org/u/daloulou)\
**Post date:** [February 24, 2020, 9:53am UTC](https://forum.keycloak.org/t/custom-registration-flow/1300/3 "2020-02-24T09:53:08Z")

</div>

Thanks that was exactly what i was looking for, I’m currently trying to call some microservice API during the registration.

---

<div class="post-metadata">

**Author:** ![sagar-jani](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@sagar-jani](https://forum.keycloak.org/u/sagar-jani)\
**Post date:** [August 26, 2020, 11:18am UTC](https://forum.keycloak.org/t/custom-registration-flow/1300/4 "2020-08-26T11:18:42Z")

</div>

Hi @M3lkior, I’m trying to remove the `confirm password` field from registration page, i changed ftl which is working fine, I have also created a jar file with `FormActionFactory` and `FormAction` implementation (changed metada/services etc) and deployed but that doesn’t have any impact. Is there anything missing ?

---

<div class="post-metadata">

**Author:** ![daloulou](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/daloulou/32/411_2.png) [@daloulou](https://forum.keycloak.org/u/daloulou)\
**Post date:** [August 27, 2020, 11:20am UTC](https://forum.keycloak.org/t/custom-registration-flow/1300/5 "2020-08-27T11:20:02Z")

</div>

hi @sagar-jani Did you Edit the Regtration Flow in Authentication Tab ?

---

<div class="post-metadata">

**Author:** ![sagar-jani](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@sagar-jani](https://forum.keycloak.org/u/sagar-jani)\
**Post date:** [August 29, 2020, 10:43am UTC](https://forum.keycloak.org/t/custom-registration-flow/1300/6 "2020-08-29T10:43:19Z")

</div>

Yes I did that, I followed the keycloak documentation. I performed a workaround by using the same java class `RegisterPassword` and removing the validation, I deployed my custom jar and it works fine but its not a proper solution, and it works because of Java classloader considering my new class.

---

<div class="post-metadata">

**Author:** ![M3lkior](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/m3lkior/32/388_2.png) [@M3lkior](https://forum.keycloak.org/u/M3lkior)\
**Post date:** [September 2, 2020, 7:55am UTC](https://forum.keycloak.org/t/custom-registration-flow/1300/7 "2020-09-02T07:55:32Z")

</div>

Hi @sagar-jani,

Could you attach Keycloak flow configuration screenshots ?

---

<div class="post-metadata">

**Author:** ![sagar-jani](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@sagar-jani](https://forum.keycloak.org/u/sagar-jani)\
**Post date:** [September 11, 2020, 5:11am UTC](https://forum.keycloak.org/t/custom-registration-flow/1300/8 "2020-09-11T05:11:20Z")

</div>

Sure @M3lkior

 ![Screen Shot 2020-09-11 at 3.08.59 pm](https://global.discourse-cdn.com/free1/uploads/keycloak/original/2X/6/6aaff357b0af710fb897a8d1337e857e7c8bc6fc.png)

I have created a new password validation step by implementing FormAction & FormActionFactory

However I don’t want to replace the default authentication flow and create a new flow but that doesn’t work.

---

<div class="post-metadata">

**Author:** ![daloulou](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/daloulou/32/411_2.png) [@daloulou](https://forum.keycloak.org/u/daloulou)\
**Post date:** [September 11, 2020, 7:30am UTC](https://forum.keycloak.org/t/custom-registration-flow/1300/9 "2020-09-11T07:30:47Z")

</div>

@sagar-jani You can create a copy of registration flow, then add your password validation by “Adding execution”.  
After that you have to go to Binding tab and replace registration flow by your copy of this flow 😉

---

<div class="post-metadata">

**Author:** ![sagar-jani](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@sagar-jani](https://forum.keycloak.org/u/sagar-jani)\
**Post date:** [September 12, 2020, 8:39am UTC](https://forum.keycloak.org/t/custom-registration-flow/1300/10 "2020-09-12T08:39:09Z")

</div>

Yes @daloulou That’s what I did but it’s not taking my custom class, and hence I used the same class `RegisterPassword` of keycloak, and it changed the default authentication flow which is a bit hecky.

An ideal solution is to have a custom flow and just add an execution.

---

<div class="post-metadata">

**Author:** ![sagar-jani](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@sagar-jani](https://forum.keycloak.org/u/sagar-jani)\
**Post date:** [September 28, 2020, 12:21am UTC](https://forum.keycloak.org/t/custom-registration-flow/1300/11 "2020-09-28T00:21:08Z")

</div>

@M3lkior any ideas ?

---

<div class="post-metadata">

**Author:** ![sagar-jani](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@sagar-jani](https://forum.keycloak.org/u/sagar-jani)\
**Post date:** [September 28, 2020, 12:49am UTC](https://forum.keycloak.org/t/custom-registration-flow/1300/12 "2020-09-28T00:49:40Z")

</div>

> [@daloulou](#):
>
> registration

I have deployed a new class which is an exact replica of `RegistrationPassword` but with a different proivderId, but I can’t see the new action in `Add Execution` dropdown, any ideas ?
