public RendererContextBuilder(Map<String, Object> context) { this(); for (Map.Entry<String, Object> entry : context.entrySet()) { put(entry.getKey(), entry.getValue()); } }
public RendererContextBuilder(Map<String, Object> context) { for (Map.Entry<String, Object> entry : context.entrySet()) { put(entry.getKey(), entry.getValue()); } }
public RendererContextBuilder(Map<String, Object> context) { this(); for (Map.Entry<String, Object> entry : context.entrySet()) { put(entry.getKey(), entry.getValue()); } }
private void populateIncoming2LOContextParams(HttpServletRequest request, ApplicationLink applicationLink, RendererContextBuilder builder) { // if this is a display of the error, show the user entered parameters. if (request.getParameter(TWO_LO_ERROR_MESSAGE) != null) { builder.put(TWO_LO_ERROR_MESSAGE, request.getParameter(TWO_LO_ERROR_MESSAGE)); builder.put(TWO_LO_ENABLED, Boolean.parseBoolean(request.getParameter(TWO_LO_ENABLED_ERROR_VALUE))); builder.put(TWO_LO_EXECUTE_AS, request.getParameter(TWO_LO_EXECUTE_AS_ERROR_VALUE)); builder.put(TWO_LO_IMPERSONATION_ENABLED, Boolean.parseBoolean(request.getParameter(TWO_LO_IMPERSONATION_ENABLED_ERROR_VALUE))); } // Otherwise, show the actual parameters persisted in the backend. else { Consumer consumer = serviceProviderStoreService.getConsumer(applicationLink); if (consumer != null) { builder.put(TWO_LO_ENABLED, consumer.getTwoLOAllowed()); builder.put(TWO_LO_EXECUTE_AS, consumer.getExecutingTwoLOUser()); builder.put(TWO_LO_IMPERSONATION_ENABLED, consumer.getTwoLOImpersonationAllowed()); // the success message might have to be displayed if the previous operation is a successful save. if (request.getParameter(TWO_LO_SUCCESS_MESSAGE) != null) { builder.put(TWO_LO_SUCCESS_MESSAGE, request.getParameter(TWO_LO_SUCCESS_MESSAGE)); } } } }
protected void render(final HttpServletRequest request, final HttpServletResponse response, final String consumer, final String consumerAppType, final String provider, final String providerAppType, final boolean enabled, final Map<String, Object> renderContext) throws IOException { final Object view = renderContext.get("view"); final String role = request.getServletPath().replaceFirst(".*/([^/?]+).*", "$1").startsWith("inbound") ? "provider" : "consumer"; render(VM_TEMPLATE, new RendererContextBuilder(renderContext) .put("stringUtils", new StringUtils()) .put("enabled", enabled) .put("view", ObjectUtils.defaultIfNull(view, enabled ? "enabled" : "disabled")) .put("nonUAL", !peerHasUAL(request)) .put("formLocation", request.getContextPath() + request.getServletPath() + request.getPathInfo()) .put("consumer", consumer) .put("consumerAppType", consumerAppType) .put("providerAppType", providerAppType) .put("provider", provider) .put("role", role) .build(), request, response); } }
@Override protected void render(String template, Map<String, Object> params, HttpServletRequest request, HttpServletResponse response, ApplicationLink applicationLink) throws IOException { final RendererContextBuilder builder = new RendererContextBuilder(params); String passedEnabledParam = request.getParameter(OAUTH_OUTGOING_ENABLED); boolean isEnabledOnOtherSide; if (passedEnabledParam != null) { isEnabledOnOtherSide = (Boolean.parseBoolean(request.getParameter(OAUTH_OUTGOING_ENABLED)) || Boolean.parseBoolean(request.getParameter(AddConsumerReciprocalServlet.SUCCESS_PARAM))); } else { // for backward compatibility if parameter is not passed assume that it is enabled isEnabledOnOtherSide = true; } builder.put(ENABLED_CONTEXT_PARAM, (applicationLink.getProperty(OAUTH_INCOMING_CONSUMER_KEY) != null) && isEnabledOnOtherSide); final String outgoing2LOParam = request.getParameter(OUTGOING_2LO_ENABLED_CONTEXT_PARAM); final String outgoing2LOiParam = request.getParameter(OUTGOING_2LOI_ENABLED_CONTEXT_PARAM); if (outgoing2LOParam != null || outgoing2LOiParam != null) { // this tells if the parent frame understands the outgoing 2LO parameter. // for the parent frame from an older applink, this will be false thus we won't render the outgoing 2LO section. builder.put(PARENT_FRAME_UNDERSTANDS_OUTGOING_2LO_PARAM, true); } if (outgoing2LOParam != null) { // this tells the current state of outgoing 2LO config builder.put(OUTGOING_2LO_ENABLED_CONTEXT_PARAM, Boolean.parseBoolean(outgoing2LOParam)); } if (outgoing2LOiParam != null) { // this tells the current state of outgoing 2LOi config builder.put(OUTGOING_2LOI_ENABLED_CONTEXT_PARAM, Boolean.parseBoolean(outgoing2LOiParam)); } super.render(template, builder.build(), request, response); }
public static RendererContextBuilder createContextBuilder(final ApplicationLink applicationLink, final I18nResolver i18nResolver, final InternalHostApplication internalHostApplication) { final RendererContextBuilder builder = new RendererContextBuilder() .put("localApplicationName", internalHostApplication.getName()) .put("localApplicationType", i18nResolver.getText(internalHostApplication.getType().getI18nKey())) .put("remoteApplicationName", applicationLink.getName()) .put("remoteApplicationType", i18nResolver.getText(applicationLink.getType().getI18nKey())); return builder; }
protected RendererContextBuilder createContextBuilder(final ApplicationLink applicationLink) { return new RendererContextBuilder() .put("localApplicationName", internalHostApplication.getName()) .put("localApplicationType", i18nResolver.getText(internalHostApplication.getType().getI18nKey())) .put("remoteApplicationName", applicationLink.getName()) .put("remoteApplicationType", i18nResolver.getText(applicationLink.getType().getI18nKey())); }
public static RendererContextBuilder createContextBuilder(final ApplicationLink applicationLink, final I18nResolver i18nResolver, final InternalHostApplication internalHostApplication) { final RendererContextBuilder builder = new RendererContextBuilder() .put("localApplicationName", internalHostApplication.getName()) .put("localApplicationType", i18nResolver.getText(internalHostApplication.getType().getI18nKey())) .put("remoteApplicationName", applicationLink.getName()) .put("remoteApplicationType", i18nResolver.getText(applicationLink.getType().getI18nKey())); return builder; }
private Map<String, Object> buildMessageContext(final String redirectUrl) { final RendererContextBuilder builder = new RendererContextBuilder(); webResourceManager.requireResource("com.atlassian.applinks.applinks-plugin:oauth-dance"); final StringWriter stringWriter = new StringWriter(); webResourceManager.includeResources(stringWriter, UrlMode.RELATIVE); final WebResources webResources = new WebResources(); webResources.setIncludedResources(stringWriter.getBuffer().toString()); builder.put("webResources", webResources); builder.put("redirectUrl", redirectUrl); return builder.build(); }
protected RendererContextBuilder createContextBuilder(final ApplicationLink applicationLink) { final RendererContextBuilder builder = new RendererContextBuilder() .put("localApplicationName", internalHostApplication.getName()) .put("localApplicationType", i18nResolver.getText(internalHostApplication.getType().getI18nKey())) .put("remoteApplicationName", applicationLink.getName()) .put("remoteApplicationType", i18nResolver.getText(applicationLink.getType().getI18nKey())); return builder; }
protected void render(final String template, final Map<String, Object> renderContext, final HttpServletRequest request, final HttpServletResponse response) throws IOException { for (final String resource : getRequiredWebResources()) { webResourceManager.requireResource(resource); } for (final String context : getRequiredWebResourceContexts()) { webResourceManager.requireResourcesForContext(context); } final RendererContextBuilder builder = new RendererContextBuilder(renderContext) .put("i18n", i18nResolver) .put("webResources", new HtmlSafeContent() { public CharSequence get() { StringWriter writer = new StringWriter(); webResourceManager.includeResources(writer, UrlMode.AUTO); return writer.toString(); } }) .put("docLinker", documentationLinker); if (xsrfTokenAccessor != null) { builder.put("xsrftokenParamValue", xsrfTokenAccessor.getXsrfToken(request, response, true)) .put("xsrftokenParamName", xsrfTokenValidator.getXsrfParameterName()); } response.setContentType("text/html; charset=utf-8"); templateRenderer.render(template, builder.build(), response.getWriter()); }
private void updateIncomingOAuthConfig(HttpServletRequest request, HttpServletResponse response) throws IOException { final ApplicationLink applicationLink = getRequiredApplicationLink(request); final boolean enabled = Boolean.parseBoolean(request.getParameter(OAUTH_INCOMING_ENABLED)); final Map<String, String> fieldErrorMessages = new HashMap<String, String>(); addOrRemoveConsumer(applicationLink, enabled, fieldErrorMessages); final String uiPosition = request.getParameter(UI_POSITION); if (fieldErrorMessages.isEmpty()) { final String message = enabled ? i18nResolver.getText("auth.oauth.config.serviceprovider.consumer.enabled") : i18nResolver.getText("auth.oauth.config.serviceprovider.consumer.disabled"); response.sendRedirect("./" + applicationLink.getId() + "?" + MESSAGE_PARAM + "=" + URIUtil.utf8Encode(message) + "&uiposition=" + uiPosition); } else { final RendererContextBuilder builder = createContextBuilder(applicationLink); builder.put(FIELD_ERROR_MESSAGES_CONTEXT_PARAM, fieldErrorMessages); builder.put(UI_POSITION, uiPosition); render(INCOMING_APPLINKS_TEMPLATE, builder.build(), request, response, applicationLink); } }
@Override protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws IOException { try { // Enable web sudo protection if needed and if the app we are running in supports it webSudoManager.willExecuteWebSudoRequest(request); final ApplicationLink applicationLink = getRequiredApplicationLink(request); final Consumer consumer = providerStoreService.getConsumer(applicationLink); final RendererContextBuilder builder = createContextBuilder(applicationLink); builder.put("contextPath", request.getContextPath()); builder.put("message", getMessage(request)); if (consumer != null) { builder.put(CONSUMER, consumer); final String publicKey = RSAKeys.toPemEncoding(consumer.getPublicKey()); builder.put(PUBLIC_KEY, publicKey); } builder.put(IS_SYSADMIN, isSysadmin()); render(INCOMING_NON_APPLINKS_TEMPLATE, builder.build(), request, response, applicationLink); } catch (WebSudoSessionException wse) { webSudoManager.enforceWebSudoProtection(request, response); } }
private Map<String, Object> buildMessageContext() { final RendererContextBuilder builder = new RendererContextBuilder(); webResourceManager.requireResource("com.atlassian.applinks.applinks-plugin:oauth-dance"); final StringWriter stringWriter = new StringWriter(); webResourceManager.includeResources(stringWriter, UrlMode.RELATIVE); final WebResources webResources = new WebResources(); webResources.setIncludedResources(stringWriter.getBuffer().toString()); builder.put("webResources", webResources); return builder.build(); }
@Override protected void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { try { // Enable web sudo protection if needed and if the app we are running in supports it webSudoManager.willExecuteWebSudoRequest(request); final ApplicationLink applicationLink = getRequiredApplicationLink(request); final Map<String, String> fieldErrorMessages = new HashMap<String, String>(); final boolean enabled = Boolean.parseBoolean(checkRequiredFormParameter(request, OAUTH_INCOMING_ENABLED, fieldErrorMessages, "auth.oauth.config.error.enable")); addOrRemoveConsumer(request, applicationLink, fieldErrorMessages, enabled); if (fieldErrorMessages.isEmpty()) { final String message = enabled ? i18nResolver.getText("auth.oauth.config.serviceprovider.consumer.enabled") : i18nResolver.getText("auth.oauth.config.serviceprovider.consumer.disabled"); response.sendRedirect("./" + applicationLink.getId() + "?" + MESSAGE_PARAM + "=" + URIUtil.utf8Encode(message)); } else { final FormFields formFields = new FormFields(request); final RendererContextBuilder builder = createContextBuilder(applicationLink); builder.put("contextPath", request.getContextPath()); builder.put(CONSUMER, formFields); builder.put(PUBLIC_KEY, formFields.getPublicKey()); builder.put("fieldErrorMessages", fieldErrorMessages); builder.put(IS_SYSADMIN, isSysadmin()); render(INCOMING_NON_APPLINKS_TEMPLATE, builder.build(), request, response, applicationLink); } } catch (WebSudoSessionException wse) { webSudoManager.enforceWebSudoProtection(request, response); } }
private void processPeerResponse(final HttpServletRequest request, final HttpServletResponse response, final ApplicationLink link) throws IOException { // returned from peer final RendererContextBuilder contextBuilder = new RendererContextBuilder(); if (!peerWasSuccessful(request)) { contextBuilder.put("error", messageFactory.newI18nMessage("auth.trusted.config.consumer.save.peer.failed", request.getParameter("message"))); } render(link, request, response, contextBuilder.build()); }
protected void render(final String template, final Map<String, Object> params, HttpServletRequest request, final HttpServletResponse response, final ApplicationLink applicationLink) throws IOException { final RendererContextBuilder builder = new RendererContextBuilder(params); builder.put(ENABLED_CONTEXT_PARAM, applicationLink.getProperty(OAUTH_INCOMING_CONSUMER_KEY) != null); super.render(template, builder.build(), request, response); }
@Override protected void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { try { // Enable web sudo protection if needed and if the app we are running in supports it webSudoManager.willExecuteWebSudoRequest(request); final ApplicationLink applicationLink = getRequiredApplicationLink(request); final RendererContextBuilder builder = createContextBuilder(applicationLink); final boolean enabled = Boolean.parseBoolean(request.getParameter(OAUTH_OUTGOING_ENABLED)); builder.put(OUTGOING_ENABLED, enabled); if (enabled) { authenticationConfigurationManager.registerProvider(applicationLink.getId(), OAuthAuthenticationProvider.class, Collections.<String, String>emptyMap()); builder.put("message", i18nResolver.getText("auth.oauth.config.consumer.atlassian.serviceprovider.message.enabled", internalHostApplication.getName(), applicationLink.getName(), internalHostApplication.getBaseUrl())); } else { consumerTokenStoreService.removeAllConsumerTokens(applicationLink); authenticationConfigurationManager.unregisterProvider(applicationLink.getId(), OAuthAuthenticationProvider.class); builder.put("message", i18nResolver.getText("auth.oauth.config.consumer.atlassian.serviceprovider.message.disabled")); } render(TEMPLATE, builder.build(), request, response); } catch (WebSudoSessionException wse) { webSudoManager.enforceWebSudoProtection(request, response); } }
@Override protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { try { // Enable web sudo protection if needed and if the app we are running in supports it webSudoManager.willExecuteWebSudoRequest(request); final ApplicationLink applicationLink = getRequiredApplicationLink(request); final RendererContextBuilder builder = createContextBuilder(applicationLink); final boolean isConfigured = authenticationConfigurationManager.isConfigured(applicationLink.getId(), OAuthAuthenticationProvider.class); builder.put(OUTGOING_ENABLED, isConfigured); render(TEMPLATE, builder.build(), request, response); } catch (WebSudoSessionException wse) { webSudoManager.enforceWebSudoProtection(request, response); } }