Java Code Examples for org.jasig.cas.logout.LogoutRequest#getStatus()
The following examples show how to use
org.jasig.cas.logout.LogoutRequest#getStatus() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: FrontChannelLogoutAction.java From springboot-shiro-cas-mybatis with MIT License | 5 votes |
@Override protected Event doInternalExecute(final HttpServletRequest request, final HttpServletResponse response, final RequestContext context) throws Exception { final List<LogoutRequest> logoutRequests = WebUtils.getLogoutRequests(context); final Integer startIndex = getLogoutIndex(context); if (logoutRequests != null) { for (int i = startIndex; i < logoutRequests.size(); i++) { final LogoutRequest logoutRequest = logoutRequests.get(i); if (logoutRequest.getStatus() == LogoutRequestStatus.NOT_ATTEMPTED) { // assume it has been successful logoutRequest.setStatus(LogoutRequestStatus.SUCCESS); // save updated index putLogoutIndex(context, i + 1); final String logoutUrl = logoutRequest.getLogoutUrl().toExternalForm(); LOGGER.debug("Using logout url [{}] for front-channel logout requests", logoutUrl); final String logoutMessage = logoutManager.createFrontChannelLogoutMessage(logoutRequest); LOGGER.debug("Front-channel logout message to send under [{}] is [{}]", this.logoutRequestParameter, logoutMessage); // redirect to application with SAML logout message final UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(logoutUrl); builder.queryParam(this.logoutRequestParameter, URLEncoder.encode(logoutMessage, "UTF-8")); return result(REDIRECT_APP_EVENT, DEFAULT_FLOW_ATTRIBUTE_LOGOUT_URL, builder.build().toUriString()); } } } // no new service with front-channel logout -> finish logout return new Event(this, FINISH_EVENT); }
Example 2
Source File: LogoutAction.java From springboot-shiro-cas-mybatis with MIT License | 5 votes |
@Override protected Event doInternalExecute(final HttpServletRequest request, final HttpServletResponse response, final RequestContext context) throws Exception { boolean needFrontSlo = false; putLogoutIndex(context, 0); final List<LogoutRequest> logoutRequests = WebUtils.getLogoutRequests(context); if (logoutRequests != null) { for (final LogoutRequest logoutRequest : logoutRequests) { // if some logout request must still be attempted if (logoutRequest.getStatus() == LogoutRequestStatus.NOT_ATTEMPTED) { needFrontSlo = true; break; } } } final String service = request.getParameter("service"); if (this.followServiceRedirects && service != null) { final Service webAppService = new SimpleWebApplicationServiceImpl(service); final RegisteredService rService = this.servicesManager.findServiceBy(webAppService); if (rService != null && rService.getAccessStrategy().isServiceAccessAllowed()) { context.getFlowScope().put("logoutRedirectUrl", service); } } // there are some front services to logout, perform front SLO if (needFrontSlo) { return new Event(this, FRONT_EVENT); } else { // otherwise, finish the logout process return new Event(this, FINISH_EVENT); } }
Example 3
Source File: FrontChannelLogoutAction.java From cas4.0.x-server-wechat with Apache License 2.0 | 5 votes |
@Override protected Event doInternalExecute(final HttpServletRequest request, final HttpServletResponse response, final RequestContext context) throws Exception { final List<LogoutRequest> logoutRequests = WebUtils.getLogoutRequests(context); final Integer startIndex = getLogoutIndex(context); if (logoutRequests != null && startIndex != null) { for (int i = startIndex; i < logoutRequests.size(); i++) { final LogoutRequest logoutRequest = logoutRequests.get(i); if (logoutRequest.getStatus() == LogoutRequestStatus.NOT_ATTEMPTED) { // assume it has been successful logoutRequest.setStatus(LogoutRequestStatus.SUCCESS); // save updated index putLogoutIndex(context, i + 1); // redirect to application with SAML logout message final UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(logoutRequest.getService().getId()); builder.queryParam("SAMLRequest", URLEncoder.encode(logoutManager.createFrontChannelLogoutMessage(logoutRequest), "UTF-8")); return result(REDIRECT_APP_EVENT, "logoutUrl", builder.build().toUriString()); } } } // no new service with front-channel logout -> finish logout return new Event(this, FINISH_EVENT); }
Example 4
Source File: LogoutAction.java From cas4.0.x-server-wechat with Apache License 2.0 | 5 votes |
@Override protected Event doInternalExecute(final HttpServletRequest request, final HttpServletResponse response, final RequestContext context) throws Exception { boolean needFrontSlo = false; putLogoutIndex(context, 0); final List<LogoutRequest> logoutRequests = WebUtils.getLogoutRequests(context); if (logoutRequests != null) { for (LogoutRequest logoutRequest : logoutRequests) { // if some logout request must still be attempted if (logoutRequest.getStatus() == LogoutRequestStatus.NOT_ATTEMPTED) { needFrontSlo = true; break; } } } final String service = request.getParameter("service"); if (this.followServiceRedirects && service != null) { final RegisteredService rService = this.servicesManager.findServiceBy(new SimpleWebApplicationServiceImpl(service)); if (rService != null && rService.isEnabled()) { context.getFlowScope().put("logoutRedirectUrl", service); } } // there are some front services to logout, perform front SLO if (needFrontSlo) { return new Event(this, FRONT_EVENT); } else { // otherwise, finish the logout process return new Event(this, FINISH_EVENT); } }