Reputation: 10826
There is a requirement that the users should first accept some license agreement, which exists only in serviceA, in order to be able to login to all other services.
So the process should be:
Notes:
The code for services other than serviceA cannot be modified.
Also CAS has access to the agreement_accepted flag.
CAS Version used: 5.3.4
Upvotes: 3
Views: 548
Reputation: 4318
Assuming agreement_accepted
is an attribute for the authenticating user, you can design two access strategies, S1 and S2, that apply to service A and all other applications.
agreement_accepted
as an attribute has a value of, let's say, true
. Access strategies for services/applications are detailed here: https://apereo.github.io/cas/5.3.x/installation/Configuring-Service-Access-Strategy.html
See this as an example: https://apereo.github.io/cas/5.3.x/installation/Configuring-Service-Access-Strategy.html#enforce-attributes
You will need to make sure S2 is assigned to all other applications, except the record for Service A.
PS You may also consider bumping your CAS version to 5.3.8, which is the latest in 5.3.x as of this writing.
Upvotes: 4