private void configurePasswordResetFlow(final Flow flow, final String id) {
createFlowVariable(flow, FLOW_VAR_ID_PASSWORD, PasswordChangeBean.class);
val binder = createStateBinderConfiguration(CollectionUtils.wrapList(FLOW_VAR_ID_PASSWORD, "confirmedPassword"));
val viewState = createViewState(flow, id, id, binder);
createStateModelBinding(viewState, FLOW_VAR_ID_PASSWORD, PasswordChangeBean.class);
viewState.getEntryActionList().add(this.initPasswordChangeAction);
val transition = createTransitionForState(viewState, CasWebflowConstants.TRANSITION_ID_SUBMIT, PASSWORD_CHANGE_ACTION);
transition.getAttributes().put("bind", Boolean.TRUE);
transition.getAttributes().put("validate", Boolean.TRUE);
createStateDefaultTransition(viewState, id);
val pswChangeAction = createActionState(flow, PASSWORD_CHANGE_ACTION, createEvaluateAction(PASSWORD_CHANGE_ACTION));
val transitionSet = pswChangeAction.getTransitionSet();
transitionSet.add(createTransition(PasswordChangeAction.PASSWORD_UPDATE_SUCCESS, CasWebflowConstants.STATE_ID_PASSWORD_UPDATE_SUCCESS));
transitionSet.add(createTransition(CasWebflowConstants.TRANSITION_ID_ERROR, id));
}
}