private void createSessionStorageStates(final Flow flow) {
        val writeStorage = createViewState(flow, CasWebflowConstants.STATE_ID_BROWSER_STORAGE_WRITE, CasWebflowConstants.VIEW_ID_BROWSER_STORAGE_WRITE);
        writeStorage.getEntryActionList().add(createEvaluateAction(CasWebflowConstants.ACTION_ID_WRITE_BROWSER_STORAGE));
        createTransitionForState(writeStorage, CasWebflowConstants.TRANSITION_ID_CONTINUE, CasWebflowConstants.STATE_ID_SERVICE_CHECK);

        val readStorage = createViewState(flow, CasWebflowConstants.STATE_ID_BROWSER_STORAGE_READ, CasWebflowConstants.VIEW_ID_BROWSER_STORAGE_READ);
        readStorage.getRenderActionList().add(createEvaluateAction(CasWebflowConstants.ACTION_ID_PUT_BROWSER_STORAGE));
        createTransitionForState(readStorage, CasWebflowConstants.TRANSITION_ID_CONTINUE, CasWebflowConstants.STATE_ID_VERIFY_BROWSER_STORAGE_READ);

        val verifyStorage = createActionState(flow, CasWebflowConstants.STATE_ID_VERIFY_BROWSER_STORAGE_READ, CasWebflowConstants.ACTION_ID_READ_BROWSER_STORAGE);
        createTransitionForState(verifyStorage, CasWebflowConstants.TRANSITION_ID_SUCCESS, new DynamicTargetStateResolver(flow));
        createTransitionForState(verifyStorage, CasWebflowConstants.TRANSITION_ID_SKIP, CasWebflowConstants.STATE_ID_INIT_LOGIN_FORM);
        createTransitionForState(verifyStorage, CasWebflowConstants.TRANSITION_ID_READ_BROWSER_STORAGE, CasWebflowConstants.STATE_ID_BROWSER_STORAGE_READ);
    }
This is {@link DefaultLoginWebflowConfigurer}.

@author Misagh Moayyed
@since 5.0.0
core/cas-server-core-webflow-api/src/main/java/org/apereo/cas/web/flow/configurer/DefaultLoginWebflowConfigurer.java