private void handleRedirectPath(String internalPath) { if (internalPath.equals(this.service_.getRedirectInternalPath())) { WApplication app = WApplication.getInstance(); WEnvironment env = app.getEnvironment(); if (!env.hasAjax()) { String stateE = env.getParameter("state"); if (!(stateE != null) || !stateE.equals(this.oAuthState_)) { this.setError(WString.tr("Wt.Auth.OAuthService.invalid-state")); } else { String errorE = env.getParameter("error"); if (errorE != null) { this.setError(WString.tr("Wt.Auth.OAuthService." + errorE)); } else { String codeE = env.getParameter("code"); if (!(codeE != null)) { this.setError(WString.tr("Wt.Auth.OAuthService.missing-code")); } else { this.requestToken(codeE); } } } this.onOAuthDone(); } } }
private OAuthAccessToken parseUrlEncodedToken(HttpMessage response) { Map<String, String[]> params = new HashMap<String, String[]>(); AuthUtils.parseFormUrlEncoded(response, params); if (response.getStatus() == 200) { String accessTokenE = AuthUtils.getParamValue(params, "access_token"); if (accessTokenE != null) { String accessToken = accessTokenE; WDate expires = null; String expiresE = AuthUtils.getParamValue(params, "expires"); if (expiresE != null) { expires = new WDate(new Date()).addSeconds(Integer.parseInt(expiresE)); } return new OAuthAccessToken(accessToken, expires, ""); } else { throw new OAuthProcess.TokenError(WString.tr("Wt.Auth.OAuthService.badresponse")); } } else { String errorE = AuthUtils.getParamValue(params, "error"); if (errorE != null) { throw new OAuthProcess.TokenError(WString.tr("Wt.Auth.OAuthService." + errorE)); } else { throw new OAuthProcess.TokenError(WString.tr("Wt.Auth.OAuthService.badresponse")); } } }
/** * Parses the response for a token request. * * <p>Throws a {@link TokenError} when the response indicates an error, or when the response could * not be properly parsed. * * <p>Some OAuth implementations may uses a non-standard encoding of the token. */ protected OAuthAccessToken parseTokenResponse(HttpMessage response) { if (response.getStatus() == 200 || response.getStatus() == 400) { String type = response.getHeader("Content-Type"); if (type != null) { if (type.startsWith("text/plain; charset=UTF-8")) { return this.parseUrlEncodedToken(response); } else { if (type.startsWith("application/json")) { return this.parseJsonToken(response); } else { throw new OAuthProcess.TokenError(WString.tr("Wt.Auth.OAuthService.badresponse")); } } } else { throw new OAuthProcess.TokenError(WString.tr("Wt.Auth.OAuthService.badresponse")); } } else { throw new OAuthProcess.TokenError(WString.tr("Wt.Auth.OAuthService.badresponse")); } }
private OAuthAccessToken parseJsonToken(HttpMessage response) { com.google.gson.JsonObject root = new com.google.gson.JsonObject(); com.google.gson.JsonParseException pe = null; try { root = (com.google.gson.JsonObject) new com.google.gson.JsonParser().parse(response.getBody()); } catch (com.google.gson.JsonParseException error) { pe = error; } boolean ok = root != null; if (!ok) { logger.error( new StringWriter().append("parseJsonToken(): ").append(pe.toString()).toString()); throw new OAuthProcess.TokenError(WString.tr("Wt.Auth.OAuthService.badjson")); } else { if (response.getStatus() == 200) { try { String accessToken = root.get("access_token").getAsString(); int secs = JsonUtils.orIfNullInt(root.get("expires_in"), -1); WDate expires = null; if (secs > 0) { expires = new WDate(new Date()).addSeconds(secs); } String refreshToken = JsonUtils.orIfNullString(root.get("refreshToken"), ""); return new OAuthAccessToken(accessToken, expires, refreshToken); } catch (RuntimeException e) { logger.error( new StringWriter().append("token response error: ").append(e.toString()).toString()); throw new OAuthProcess.TokenError(WString.tr("Wt.Auth.OAuthService.badresponse")); } } else { throw new OAuthProcess.TokenError( WString.tr( "Wt.Auth.OAuthService." + JsonUtils.orIfNullString(root.get("error"), "missing error"))); } } }
public void newValue( final WDataSeries series, double x, double y, double stackY, int xRow, int xColumn, int yRow, int yColumn) { if (!Double.isNaN(x) && !Double.isNaN(y)) { WPointF p = this.chart_.map( x, y, series.getAxis(), this.getCurrentXSegment(), this.getCurrentYSegment()); if (!this.marker_.isEmpty()) { WPen pen = series.getMarkerPen().clone(); SeriesIterator.setPenColor( pen, series, xRow, xColumn, yRow, yColumn, ItemDataRole.MarkerPenColorRole); if (this.chart_.isSeriesSelectionEnabled() && this.chart_.getSelectedSeries() != null && this.chart_.getSelectedSeries() != series) { pen.setColor(WCartesianChart.lightenColor(pen.getColor())); } WBrush brush = series.getMarkerBrush().clone(); SeriesIterator.setBrushColor( brush, series, xRow, xColumn, yRow, yColumn, ItemDataRole.MarkerBrushColorRole); double scale = this.calculateMarkerScale(series, xRow, xColumn, yRow, yColumn, series.getMarkerSize()); if (this.chart_.isSeriesSelectionEnabled() && this.chart_.getSelectedSeries() != null && this.chart_.getSelectedSeries() != series) { brush.setColor(WCartesianChart.lightenColor(brush.getColor())); } if (!(this.series_ != null) || !brush.equals(this.currentBrush_) || !pen.equals(this.currentPen_) || scale != this.currentScale_) { if (this.series_ != null) { this.finishPathFragment(this.series_); } this.series_ = series; this.currentBrush_ = brush; this.currentPen_ = pen; this.currentScale_ = scale; } this.pathFragment_.moveTo(this.hv(p)); } if (series.getType() != SeriesType.BarSeries) { WString toolTip = series.getModel().getToolTip(yRow, yColumn); if (!(toolTip.length() == 0)) { if (!(!EnumUtils.mask( series.getModel().flags(yRow, yColumn), ItemFlag.ItemHasDeferredTooltip) .isEmpty() || !EnumUtils.mask(series.getModel().flags(yRow, yColumn), ItemFlag.ItemIsXHTMLText) .isEmpty())) { WTransform t = this.painter_.getWorldTransform(); p = t.map(this.hv(p)); WCircleArea circleArea = new WCircleArea(); circleArea.setCenter(new WPointF(p.getX(), p.getY())); circleArea.setRadius(5); circleArea.setToolTip(toolTip); this.chart_.addDataPointArea(series, xRow, xColumn, circleArea); } else { this.chart_.hasDeferredToolTips_ = true; } } } } }
/** * Sets the error. * * <p>This should be used in {@link OAuthProcess#getIdentity(OAuthAccessToken token) * getIdentity()} implementations to set the error, before emitting {@link * OAuthProcess#authenticated() authenticated()} with an invalid {@link Identity}. */ protected void setError(CharSequence error) { this.error_ = WString.toWString(error); }
/** Constructor. */ public TokenError(CharSequence error) { super(); this.error_ = WString.toWString(error); }