I dont recall what is there by default, this is what I have ... you
probably dont need the saml or oauth stuff:
implementation
"org.apereo.cas:cas-server-support-jdbc-drivers:${project.'cas.version'}"
implementation
"org.apereo.cas:cas-server-support-jpa-ticket-registry:${project.'cas.version'}"
implementation
"org.apereo.cas:cas-server-support-jpa-util:${project.'cas.version'}"
implementation
"org.apereo.cas:cas-server-support-json-service-registry:${project.'cas.version'}"
implementation
"org.apereo.cas:cas-server-support-ldap:${project.'cas.version'}"
implementation
"org.apereo.cas:cas-server-support-oauth-webflow:${project.'cas.version'}"
implementation
"org.apereo.cas:cas-server-support-saml-core-api:${project.'cas.version'}"
implementation
"org.apereo.cas:cas-server-core-api-webflow:${project.'cas.version'}"
implementation
"org.apereo.cas:cas-server-core-webflow:${project.'cas.version'}"
implementation
"org.apereo.cas:cas-server-core-webflow-api:${project.'cas.version'}"
implementation
"org.apereo.cas:cas-server-core-tickets-api:${project.'cas.version'}"
implementation
"org.apereo.cas:cas-server-core-util-api:${project.'cas.version'}"
implementation
"org.apereo.cas:cas-server-support-saml:${project.'cas.version'}"
implementation
"org.apereo.cas:cas-server-support-saml-idp:${project.'cas.version'}"
On Thursday, January 27, 2022 at 2:05:43 AM UTC-6 [email protected] wrote:
> Hi,
> Thank you very much for your answer, it will help me to find my way !
> But is the SomethingWebflowConfigurer
> <https://apereo.github.io/cas/development/webflow/Webflow-Customization-Extensions.html>
>
> supposed to be usable per se, just to check everythin is taken into account
> ?
> I am still not able to compile it because of these missing symbols errors.
> Is there something else to add in the "build.gradle" or somewhere else ?
> Regards
>
>
> Le 27-Jan-2022 04:35:35 +0100, [email protected] a écrit:
>
> I struggled with the same. With help from this community, going thru some
> cas code, and reading thru springboot docs I was finally able to get thru
> it. I'll try to summarize.
>
> There is a default login webflow already defined for you. What I did was
> let the default flow execute but then intercepted the last transition from
> REAL_SUBMIT -> TickgetGrantingTicket. So now the flow looks like
> DEFAULT_WEBFLOW->REAL_SUBMIT->MY_CUSTOM_WEBFLOW->TICKET_GRANTING_TICKET. My
> custom webflow consist of a dozen or so actions.
>
> 1) First you need to define a Configurer class, see cas doc
> SomethingWebflowConfigurer
> <https://apereo.github.io/cas/development/webflow/Webflow-Customization-Extensions.html>
> as
> an example. The main point in hooking your webflow with something like:
> createTransitionForState(realsubmit,
> CasWebflowConstants.STATE_ID_SUCCESS, <DO_STEP1_ACTION>, true);
> Then create your new action and handling each transition your action
> is capable of returning:
> val newActionState = createActionState(flow,
> <DO_STEP1_ACTION> , <step1Action>); //step1Action is the name of your
> action class Step1Action that you have autowired
> createTransitionForState(newActionState,
> CasWebflowConstants.STATE_ID_SUCCESS, <DO_STEP1_ACTION>);
> createTransitionForState(newActionState, "error",
> <DO_SOMETHING_ON_ERROR);
> 2) Next create your action class. Look at a cas example
> <https://github.com/apereo/cas/blob/6e29bc0001e3c304375efc5f8cbb04918d8f8691/support/cas-server-support-yubikey-core/src/main/java/org/apereo/cas/adaptors/yubikey/web/flow/YubiKeyAuthenticationWebflowAction.java>
>
> to model you class from. Place your logic inside of doExecute(). You
> doExecute must return an event. To keep it simple let say it all goes well
> or it fails. In such case either return success or error:
> if(allGoo) {
> return super.success();
> } else {
> super.error();
> }
>
> 3) Finally, at your final step of your custom webflow, you want to go back
> tot he TicketGrantingTicket
> val newActionState = createActionState(flow,
> <DO_STEP2_ACTION>, < step2Action > ); //step2Action is the name
> of your action class Step2Action that you have autowired
> createTransitionForState(newActionState,
> CasWebflowConstants.STATE_ID_SUCCESS,
> CasWebflowConstants.STATE_ID_CREATE_TICKET_GRANTING_TICKET);
>
> 4) Next, you'll need to tell spring about your configuration. Create a
> spring.factories file inside src/main/resources/META-INF. Include a
> reference to your configurer class:
> org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
> org.apereo.cas.config.Step1Configurer,\
> org.apereo.cas.config.Step2Configurer
>
> Good luck, hope this provides some useful insight.
> -psv
>
>
> On Wednesday, January 26, 2022 at 10:50:55 AM UTC-6 [email protected]
> wrote:
>
>> Hi,
>>
>> I am trying to replace an old CAS 3.5, and having been far from this
>> product during all these years, things have changed a lot !
>>
>> After some trials and errors, I was able to clone the overlay repo,
>> extract the fragments I needed to customize and build the WAR.
>>
>> Then I managed to add the required dependencies to get a working LDAP
>> auth source (unfortunately without pooling) and a JSON services registry,
>> and build a more complete WAR.
>>
>> But now I am facing a problem I can not solve : the old CAS had some
>> customized webflow and some Java code to provide dynamic authentication
>> depending on a list of network addresses (either direct LDAP or SPNEGO)
>>
>> I guess adapting this part will be something, but right now I am
>> struggling at the very first step !
>>
>> Wanting to give a try to this example :
>> https://apereo.github.io/cas/6.4.x/webflow/Webflow-Customization-Extensions.html
>> I
>> am not able to compile " SomethingConfiguration" and I get the following
>> errors :
>>
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:5:
>> error: cannot find symbol
>> public class SomethingConfiguration implements
>> CasWebflowExecutionPlanConfigurer {
>> ^
>> symbol: class CasWebflowExecutionPlanConfigurer
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:3:
>> error: cannot find symbol
>> @Configuration("somethingConfiguration")
>> ^
>> symbol: class Configuration
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:4:
>> error: cannot find symbol
>> @EnableConfigurationProperties(CasConfigurationProperties.class)
>> ^
>> symbol: class EnableConfigurationProperties
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:8:
>> error: cannot find symbol
>> private CasConfigurationProperties casProperties;
>> ^
>> symbol: class CasConfigurationProperties
>> location: class SomethingConfiguration
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:12:
>> error: cannot find symbol
>> private FlowDefinitionRegistry loginFlowDefinitionRegistry;
>> ^
>> symbol: class FlowDefinitionRegistry
>> location: class SomethingConfiguration
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:15:
>> error: cannot find symbol
>> private ApplicationContext applicationContext;
>> ^
>> symbol: class ApplicationContext
>> location: class SomethingConfiguration
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:18:
>> error: cannot find symbol
>> private FlowBuilderServices flowBuilderServices;
>> ^
>> symbol: class FlowBuilderServices
>> location: class SomethingConfiguration
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:22:
>> error: cannot find symbol
>> public CasWebflowConfigurer somethingWebflowConfigurer() {
>> ^
>> symbol: class CasWebflowConfigurer
>> location: class SomethingConfiguration
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:28:
>> error: cannot find symbol
>> public void configureWebflowExecutionPlan(final CasWebflowExecutionPlan
>> plan) {
>> ^
>> symbol: class CasWebflowExecutionPlan
>> location: class SomethingConfiguration
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:4:
>> error: cannot find symbol
>> @EnableConfigurationProperties(CasConfigurationProperties.class)
>> ^
>> symbol: class CasConfigurationProperties
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:7:
>> error: cannot find symbol
>> @Autowired
>> ^
>> symbol: class Autowired
>> location: class SomethingConfiguration
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:10:
>> error: cannot find symbol
>> @Autowired
>> ^
>> symbol: class Autowired
>> location: class SomethingConfiguration
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:11:
>> error: cannot find symbol
>> @Qualifier("loginFlowRegistry")
>> ^
>> symbol: class Qualifier
>> location: class SomethingConfiguration
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:14:
>> error: cannot find symbol
>> @Autowired
>> ^
>> symbol: class Autowired
>> location: class SomethingConfiguration
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:17:
>> error: cannot find symbol
>> @Autowired
>> ^
>> symbol: class Autowired
>> location: class SomethingConfiguration
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:20:
>> error: cannot find symbol
>> @ConditionalOnMissingBean(name = "somethingWebflowConfigurer")
>> ^
>> symbol: class ConditionalOnMissingBean
>> location: class SomethingConfiguration
>> /opt/cas/src/main/java/org/example/something/SomethingConfiguration.java:21:
>> error: cannot find symbol
>> @Bean
>> ^
>> symbol: class Bean
>> location: class SomethingConfiguration
>>
>> It seems SpringBoot dependencies are not satisfied (I discovered all the
>> concepts ten days ago so I might be wrong) but after "finding", "greping"
>> and adding dozens of combinations like these, nothing has improved :
>>
>> implementation
>> "org.apereo.cas:cas-server-core-api-configuration-model:${project.'cas.version'}"
>> implementation
>> "org.apereo.cas:cas-server-core-configuration:${project.'cas.version'}"
>> implementation
>> "org.apereo.cas:cas-server-core-webflow-api:${project.'cas.version'}"
>> implementation
>> "org.apereo.cas:cas-server-core-web-api:${project.'cas.version'}"
>> implementation
>> "org.apereo.cas:cas-server-core-util:${project.'cas.version'}"
>> implementation
>> "org.apereo.cas:cas-server-core-configuration-api:${project.'cas.version'}"
>>
>> I used the "build.gradle" provided in the repo, just adding dependencies
>> for LDAP and JSON.
>>
>> Can somebody tell me what I am missing ?
>>
>> Regards
>>
>> ------------------------------
>> FreeMail powered by mail.fr
>
>
>
> --
> - Website: https://apereo.github.io/cas
> - Gitter Chatroom: https://gitter.im/apereo/cas
> - List Guidelines: https://goo.gl/1VRrw7
> - Contributions: https://goo.gl/mh7qDG
> ---
> You received this message because you are subscribed to the Google Groups
> "CAS Community" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/a/apereo.org/d/msgid/cas-user/07382b33-b549-48fe-bdbe-1a6d345e71fen%40apereo.org
>
> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/07382b33-b549-48fe-bdbe-1a6d345e71fen%40apereo.org?utm_medium=email&utm_source=footer>
> .
>
>
> ------------------------------
> FreeMail powered by mail.fr
--
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
---
You received this message because you are subscribed to the Google Groups "CAS
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/a/apereo.org/d/msgid/cas-user/10c6381c-0f86-469d-ae01-edda265bcf3bn%40apereo.org.