@Override public void handleLoginSuccess(Request request, Response response, LoginContext context) throws Throwable { response.sendRedirect(getReturnUrl(context, request, null)); }
protected void gotoLocation(Request request,Response response,String location) throws Throwable { // disable cache location = Urls.appendQueryParams(location,"_t_",System.currentTimeMillis()+""); if(location.startsWith(FORWARD_PREFIX)){ request.forward(location.substring(FORWARD_PREFIX.length())); return; } if(location.startsWith(VIEW_PREFIX)){ request.forwardToView(location.substring(VIEW_PREFIX.length())); return; } if(location.startsWith(REDIRECT_PREFIX)){ response.sendRedirect(location.substring(REDIRECT_PREFIX.length())); return; } response.sendRedirect(location); }
public static void redirect(Response response, String uri, OAuth2Error error) { log.debug("redirect error '{}', desc : {}", error.getError(), error.getErrorDescription()); StringBuilder qs = new StringBuilder(); qs.append("error=").append(error.getError()); if (!Strings.isEmpty(error.getErrorDescription())) { qs.append("&error_description=").append(Urls.encode(error.getErrorDescription())); } response.sendRedirect(Urls.appendQueryString(uri, qs.toString())); }
public static void redirect(Response response, String uri, OAuth2Error error) { log.debug("redirect error '{}', desc : {}", error.getError(), error.getErrorDescription()); StringBuilder qs = new StringBuilder(); qs.append("error=").append(error.getError()); if(!Strings.isEmpty(error.getErrorDescription())) { qs.append("&error_description=").append(Urls.encode(error.getErrorDescription())); } response.sendRedirect(Urls.appendQueryString(uri, qs.toString())); }
@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 void redirectToken(Request request, Response response, OAuth2Params params, AuthzAccessToken token) { Map<String, String> query = new LinkedHashMap<>(5); query.put("access_token", token.getToken()); query.put("token_type", "bearer"); //TODO : supports other token type. if(token.getExpiresInFormNow() > 0) { query.put("expires_in", String.valueOf(token.getExpiresInFormNow())); } if(!Strings.isEmpty(token.getScope())) { query.put("scope", token.getScope()); } if(!Strings.isEmpty(params.getState())) { query.put("state", params.getState()); } String queryString = Urls.getQueryString(query); String redirectUrl = Urls.appendQueryString(params.getRedirectUri(), queryString); response.sendRedirect(redirectUrl); }
protected void redirectToken(Request request, Response response, OAuth2Params params, AuthzAccessToken token) { Map<String, String> query = new LinkedHashMap<>(5); query.put("access_token", token.getToken()); query.put("token_type", "bearer"); //TODO : supports other token type. if(token.getExpiresInFormNow() > 0) { query.put("expires_in", String.valueOf(token.getExpiresInFormNow())); } if(!Strings.isEmpty(token.getScope())) { query.put("scope", token.getScope()); } if(!Strings.isEmpty(params.getState())) { query.put("state", params.getState()); } String queryString = Urls.getQueryString(query); String redirectUrl = Urls.appendQueryString(params.getRedirectUri(), queryString); response.sendRedirect(redirectUrl); }
@Override public State preLogout(Request request, Response response, LogoutContext context) throws Throwable { if(config.isEnabled() && config.isOAuth2LogoutEnabled()) { Boolean reqeustedLogout = (Boolean)request.getAttribute("oauth2_logout"); if(null != reqeustedLogout) { return State.CONTINUE; } String remoteLogoutParam = request.getParameter("remote_logout"); if("0".equals(remoteLogoutParam)) { return State.CONTINUE; }else{ response.sendRedirect(buildRemoteLogoutUrl(request)); return State.INTERCEPTED; } } return State.CONTINUE; }
protected void sendSuccessRedirect(Request request, Response response, AuthzAuthentication authc, Map<String,String> qs) { OAuth2Params params = authc.getParams(); String state = params.getState(); if(!Strings.isEmpty(state)) { qs.put("state", state); } for(Oauth2RedirectHandler handler : handlers){ if(!handler.onOauth2LoginSuccessRedirect(request,response,authc,qs)){ return; } } QueryStringBuilder queryString = new QueryStringBuilder(request.getCharacterEncoding()); for (Map.Entry<String, String> entry : qs.entrySet()) { queryString.add(entry.getKey(), entry.getValue()); } response.sendRedirect(Urls.appendQueryString(authc.getRedirectUri(), queryString.build())); } }
protected void sendSuccessRedirect(Request request, Response response, AuthzAuthentication authc, Map<String,String> qs) { OAuth2Params params = authc.getParams(); String state = params.getState(); if(!Strings.isEmpty(state)) { qs.put("state", state); } for(Oauth2RedirectHandler handler : handlers){ if(!handler.onOauth2LoginSuccessRedirect(request,response,authc,qs)){ return; } } QueryStringBuilder queryString = new QueryStringBuilder(request.getCharacterEncoding()); for (Map.Entry<String, String> entry : qs.entrySet()) { queryString.add(entry.getKey(), entry.getValue()); } response.sendRedirect(Urls.appendQueryString(authc.getRedirectUri(), queryString.build())); } }