@Override public State preLogout(Request request, Response response, LogoutContext context) throws Throwable { if(config.isEnabled() && config.isLogout()) { if(!isLogoutFromServer(request)) { response.sendRedirect(buildRemoteLogoutUrl(request)); return State.INTERCEPTED; } } return State.CONTINUE; }
protected String buildRemoteLogoutUrl(Request request) { QueryStringBuilder qs = new QueryStringBuilder(); qs.add(OAuth2Params.CLIENT_ID, config.getClientId()); qs.add(OAuth2Params.POST_LOGOUT_REDIRECT_URI, buildLogoutRedirectUri(request)); return Urls.appendQueryString(config.getLogoutUrl(), qs.build()); }
@Override public State preResolveAuthentication(Request request, Response response, AuthenticationContext context) throws Throwable { if(config.isEnabled() && config.isLogout()) { if(isLogoutFromServer(request)) { am.logoutImmediately(request, response); if(!Strings.isEmpty(config.getLogoutView())) { View view = request.getView(config.getLogoutView()); //todo: handle null view if(null != view) { view.render(request, response); return State.INTERCEPTED; } } } } return State.CONTINUE; }