Skip to content

Commit 4cbc9a2

Browse files
committed
logout works
1 parent 973a2a6 commit 4cbc9a2

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

cas/cas-server/src/main/java/fr/gouv/vitamui/cas/config/WebflowConfig.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,8 @@ public Action terminateSessionAction(
303303
final CasApi casApi,
304304
final ServicesManager servicesManager,
305305
final TicketRegistry ticketRegistry,
306-
@Qualifier(CasWebflowConstants.ACTION_ID_FRONT_CHANNEL_LOGOUT) final Action frontChannelLogoutAction
306+
@Qualifier(CasWebflowConstants.ACTION_ID_FRONT_CHANNEL_LOGOUT) final Action frontChannelLogoutAction,
307+
@Qualifier(SingleLogoutRequestExecutor.BEAN_NAME) final SingleLogoutRequestExecutor defaultSingleLogoutRequestExecutor
307308
) {
308309
return WebflowActionBeanSupplier.builder()
309310
.withApplicationContext(applicationContext)
@@ -321,7 +322,8 @@ public Action terminateSessionAction(
321322
servicesManager,
322323
casProperties,
323324
frontChannelLogoutAction,
324-
ticketRegistry
325+
ticketRegistry,
326+
defaultSingleLogoutRequestExecutor
325327
)
326328
)
327329
.withId(CasWebflowConstants.ACTION_ID_TERMINATE_SESSION)

cas/cas-server/src/main/java/fr/gouv/vitamui/cas/logout/TerminateApiSessionAction.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import org.apereo.cas.logout.LogoutManager;
5050
import org.apereo.cas.logout.slo.SingleLogoutExecutionRequest;
5151
import org.apereo.cas.logout.slo.SingleLogoutRequestContext;
52+
import org.apereo.cas.logout.slo.SingleLogoutRequestExecutor;
5253
import org.apereo.cas.services.BaseRegisteredService;
5354
import org.apereo.cas.services.RegisteredService;
5455
import org.apereo.cas.services.ServicesManager;
@@ -67,6 +68,7 @@
6768
import java.util.Collection;
6869
import java.util.List;
6970
import java.util.Map;
71+
import java.util.Optional;
7072

7173
import static fr.gouv.vitamui.commons.api.CommonConstants.AUTHTOKEN_ATTRIBUTE;
7274
import static fr.gouv.vitamui.commons.api.CommonConstants.SUPER_USER_ATTRIBUTE;
@@ -95,10 +97,11 @@ public TerminateApiSessionAction(
9597
final ServicesManager servicesManager,
9698
final CasConfigurationProperties casProperties,
9799
final Action frontChannelLogoutAction,
98-
final TicketRegistry ticketRegistry
100+
final TicketRegistry ticketRegistry,
101+
final SingleLogoutRequestExecutor singleLogoutRequestExecutor
99102
) {
100103
super(centralAuthenticationService, ticketGrantingTicketCookieGenerator, warnCookieGenerator, logoutProperties,
101-
logoutManager, applicationContext, null);
104+
logoutManager, applicationContext, singleLogoutRequestExecutor);
102105
this.utils = utils;
103106
this.casApi = casApi;
104107
this.servicesManager = servicesManager;
@@ -126,8 +129,8 @@ public Event terminate(final RequestContext context) {
126129
final Principal principal = ticket.getAuthentication().getPrincipal();
127130
final Map<String, List<Object>> attributes = principal.getAttributes();
128131
final String authToken = (String) utils.getAttributeValue(attributes, AUTHTOKEN_ATTRIBUTE);
129-
final String superUserEmail = (String) utils.getAttributeValue(attributes, SUPER_USER_ATTRIBUTE);
130-
final String superUserCustomerId = (String) utils.getAttributeValue(attributes, SUPER_USER_CUSTOMER_ID_ATTRIBUTE);
132+
final String superUserEmail = Optional.ofNullable((String) utils.getAttributeValue(attributes, SUPER_USER_ATTRIBUTE)).orElse("");
133+
final String superUserCustomerId = Optional.ofNullable((String) utils.getAttributeValue(attributes, SUPER_USER_CUSTOMER_ID_ATTRIBUTE)).orElse("");
131134

132135
LOGGER.debug("Calling logout for authToken={} and superUser={}, superUserCustomerId={}",
133136
authToken, superUserEmail, superUserCustomerId);

cas/cas-server/src/test/java/fr/gouv/vitamui/cas/webflow/actions/TerminateApiSessionActionTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public TestableTerminateApiSessionAction(
116116
) {
117117
super(cas, ticketCookie, warnCookie, logoutProps, logoutManager,
118118
ctx, utils, casApi, servicesManager, casProperties,
119-
frontChannelLogoutAction, ticketRegistry);
119+
frontChannelLogoutAction, ticketRegistry, null);
120120
}
121121

122122
// Expose protected method as public for testing

0 commit comments

Comments
 (0)