List of usage examples for org.apache.wicket.request.http.flow AbortWithHttpErrorCodeException AbortWithHttpErrorCodeException
public AbortWithHttpErrorCodeException(final int errorCode, final String message)
From source file:com.gitblit.wicket.pages.RawPage.java
License:Apache License
public RawPage(final PageParameters params) { super(params); if (params.get("r").isEmpty()) { error(getString("gb.repositoryNotSpecified")); redirectToInterceptPage(new RepositoriesPage()); }/*from w w w . j a v a2s . c o m*/ getRequestCycle().scheduleRequestHandlerAfterCurrent(new IRequestHandler() { @Override public void respond(IRequestCycle requestCycle) { WebResponse response = (WebResponse) requestCycle.getResponse(); final String repositoryName = WicketUtils.getRepositoryName(params); final String objectId = WicketUtils.getObject(params); final String blobPath = WicketUtils.getPath(params); String[] encodings = getEncodings(); GitBlitWebSession session = GitBlitWebSession.get(); UserModel user = session.getUser(); RepositoryModel model = app().repositories().getRepositoryModel(user, repositoryName); if (model == null) { // user does not have permission error(getString("gb.canNotLoadRepository") + " " + repositoryName); redirectToInterceptPage(new RepositoriesPage()); return; } Repository r = app().repositories().getRepository(repositoryName); if (r == null) { error(getString("gb.canNotLoadRepository") + " " + repositoryName); redirectToInterceptPage(new RepositoriesPage()); return; } if (StringUtils.isEmpty(blobPath)) { // objectid referenced raw view byte[] binary = JGitUtils.getByteContent(r, objectId); if (binary == null) { final String objectNotFound = MessageFormat .format("Raw page failed to find object {0} in {1}", objectId, repositoryName); logger.error(objectNotFound); throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, objectNotFound); } contentType = "application/octet-stream"; response.setContentType(contentType); response.setContentLength(binary.length); try { response.getOutputStream().write(binary); } catch (Exception e) { logger.error("Failed to write binary response", e); } } else { // standard raw blob view RevCommit commit = JGitUtils.getCommit(r, objectId); if (commit == null) { final String commitNotFound = MessageFormat .format("Raw page failed to find commit {0} in {1}", objectId, repositoryName); logger.error(commitNotFound); throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, commitNotFound); } String filename = blobPath; if (blobPath.indexOf('/') > -1) { filename = blobPath.substring(blobPath.lastIndexOf('/') + 1); } String extension = null; if (blobPath.lastIndexOf('.') > -1) { extension = blobPath.substring(blobPath.lastIndexOf('.') + 1); } // Map the extensions to types Map<String, Integer> map = new HashMap<String, Integer>(); for (String ext : app().settings().getStrings(Keys.web.imageExtensions)) { map.put(ext.toLowerCase(), 2); } for (String ext : app().settings().getStrings(Keys.web.binaryExtensions)) { map.put(ext.toLowerCase(), 3); } final String blobNotFound = MessageFormat.format( "Raw page failed to find blob {0} in {1} @ {2}", blobPath, repositoryName, objectId); if (extension != null) { int type = 0; if (map.containsKey(extension)) { type = map.get(extension); } switch (type) { case 2: // image blobs byte[] image = JGitUtils.getByteContent(r, commit.getTree(), blobPath, true); if (image == null) { logger.error(blobNotFound); throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, blobNotFound); } contentType = "image/" + extension.toLowerCase(); response.setContentType(contentType); response.setContentLength(image.length); try { response.getOutputStream().write(image); } catch (IOException e) { logger.error("Failed to write image response", e); } break; case 3: // binary blobs (download) byte[] binary = JGitUtils.getByteContent(r, commit.getTree(), blobPath, true); if (binary == null) { logger.error(blobNotFound); throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, blobNotFound); } contentType = "application/octet-stream"; response.setContentLength(binary.length); response.setContentType(contentType); try { String userAgent = GitBlitRequestUtils.getServletRequest().getHeader("User-Agent"); if (userAgent != null && userAgent.indexOf("MSIE 5.5") > -1) { response.setHeader("Content-Disposition", "filename=\"" + URLEncoder.encode(filename, Constants.ENCODING) + "\""); } else if (userAgent != null && userAgent.indexOf("MSIE") > -1) { response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(filename, Constants.ENCODING) + "\""); } else { response.setHeader("Content-Disposition", "attachment; filename=\"" + new String(filename.getBytes(Constants.ENCODING), "latin1") + "\""); } } catch (UnsupportedEncodingException e) { response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\""); } try { response.getOutputStream().write(binary); } catch (IOException e) { logger.error("Failed to write binary response", e); } break; default: // plain text String content = JGitUtils.getStringContent(r, commit.getTree(), blobPath, encodings); if (content == null) { logger.error(blobNotFound); throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, blobNotFound); } contentType = "text/plain; charset=UTF-8"; response.setContentType(contentType); try { response.getOutputStream().write(content.getBytes("UTF-8")); } catch (Exception e) { logger.error("Failed to write text response", e); } } } else { // plain text String content = JGitUtils.getStringContent(r, commit.getTree(), blobPath, encodings); if (content == null) { logger.error(blobNotFound); throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, blobNotFound); } contentType = "text/plain; charset=UTF-8"; response.setContentType(contentType); try { response.getOutputStream().write(content.getBytes("UTF-8")); } catch (Exception e) { logger.error("Failed to write text response", e); } } } r.close(); } @Override public void detach(IRequestCycle requestCycle) { // TODO Auto-generated method stub } }); }
From source file:eu.esdihumboldt.hale.server.templates.war.pages.TemplatePage.java
License:Open Source License
@SuppressWarnings("serial") @Override//from ww w .ja va 2s . c o m protected void addControls(boolean loggedIn) { super.addControls(loggedIn); StringValue idParam = getPageParameters().get(0); if (!idParam.isNull() && !idParam.isEmpty()) { String templateId = idParam.toString(); OrientGraph graph = DatabaseHelper.getGraph(); try { Template template = null; try { template = Template.getByTemplateId(graph, templateId); } catch (NonUniqueResultException e) { log.error("Duplicate template representation: " + templateId, e); } if (template != null) { // name Label name = new Label("name", template.getName()); add(name); // download String href = TemplateLocations.getTemplateDownloadUrl(templateId); ExternalLink download = new ExternalLink("download", href); add(download); // project location WebMarkupContainer project = new WebMarkupContainer("project"); project.add(AttributeModifier.replace("value", TemplateLocations.getTemplateProjectUrl(scavenger, templateId))); add(project); // author Label author = new Label("author", template.getAuthor()); add(author); // edit-buttons container WebMarkupContainer editButtons = new WebMarkupContainer("edit-buttons"); editButtons.setVisible(false); add(editButtons); // deleteDialog container WebMarkupContainer deleteDialog = new WebMarkupContainer("deleteDialog"); deleteDialog.setVisible(false); add(deleteDialog); // user String userName; Vertex v = template.getV(); boolean showEditPart = UserUtil.isAdmin(); Iterator<Vertex> owners = v.getVertices(Direction.OUT, "owner").iterator(); if (owners.hasNext()) { User user = new User(owners.next(), graph); userName = UserUtil.getDisplayName(user); showEditPart = loggedIn && UserUtil.getLogin().equals(user.getLogin()); } else { userName = "Unregistered user"; } // edit buttons if (showEditPart) { editButtons.setVisible(true); deleteDialog.setVisible(true); // edit editButtons.add(new BookmarkablePageLink<>("edit", EditTemplatePage.class, new PageParameters().set(0, templateId))); // update editButtons.add(new BookmarkablePageLink<>("update", UpdateTemplatePage.class, new PageParameters().set(0, templateId))); // delete deleteDialog.add(new DeleteTemplateLink("delete", templateId)); } Label user = new Label("user", userName); add(user); // description String descr = template.getDescription(); String htmlDescr = null; if (descr == null || descr.isEmpty()) { descr = "No description for the project template available."; } else { // convert markdown to htmlDescr = new PegDownProcessor(Extensions.AUTOLINKS | Extensions.SUPPRESS_ALL_HTML | Extensions.HARDWRAPS | Extensions.SMARTYPANTS).markdownToHtml(descr); } // description in pre Label description = new Label("description", descr); description.setVisible(htmlDescr == null); add(description); // description in div Label htmlDescription = new Label("html-description", htmlDescr); htmlDescription.setVisible(htmlDescr != null); htmlDescription.setEscapeModelStrings(false); add(htmlDescription); // invalid WebMarkupContainer statusInvalid = new WebMarkupContainer("invalid"); statusInvalid.setVisible(!template.isValid()); add(statusInvalid); // resources ResourcesPanel resources = new ResourcesPanel("resources", templateId); add(resources); // project popover WebMarkupContainer projectPopover = new WebMarkupContainer("project-popover"); projectPopover.add(new HTMLPopoverBehavior(Model.of("Load template in HALE"), new PopoverConfig().withPlacement(Placement.bottom)) { @Override public Component newBodyComponent(String markupId) { return new ProjectURLPopover(markupId); } }); add(projectPopover); } else { throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, "Template not found."); } } finally { graph.shutdown(); } } else throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_BAD_REQUEST, "Template identifier must be specified."); }
From source file:eu.esdihumboldt.hale.server.webtransform.war.pages.StatusPage.java
License:Open Source License
@Override protected void addControls(boolean loggedIn) { super.addControls(loggedIn); final String workspaceId = getPageParameters().get(PARAMETER_WORKSPACE).toOptionalString(); if (workspaceId == null || workspaceId.isEmpty()) { throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, "Workspace ID not specified."); }/*from w w w. j a v a2 s . co m*/ try { workspaces.getWorkspaceFolder(workspaceId); } catch (FileNotFoundException e) { throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, "Workspace does not exist."); } final IModel<TransformationWorkspace> workspace = new LoadableDetachableModel<TransformationWorkspace>() { private static final long serialVersionUID = 2600444242247550094L; @Override protected TransformationWorkspace load() { return new TransformationWorkspace(workspaceId); } }; // job panel final Serializable family = AbstractTransformationJob.createFamily(workspaceId); final JobPanel jobs = new JobPanel("jobs", family, true); add(jobs); // status final Label status = new Label("status", new LoadableDetachableModel<String>() { private static final long serialVersionUID = -4351763182104835300L; @Override protected String load() { if (workspace.getObject().isTransformationFinished()) { if (workspace.getObject().isTransformationSuccessful()) { return "Transformation completed."; } else { return "Transformation failed."; } } else { if (Job.getJobManager().find(family).length > 0) { return "Transformation is running:"; } else { return "No transformation running."; } } } }); status.setOutputMarkupId(true); add(status); // result final WebMarkupContainer result = new WebMarkupContainer("result"); result.setOutputMarkupId(true); add(result); final WebMarkupContainer update = new WebMarkupContainer("update") { private static final long serialVersionUID = -2591480922683644827L; @Override public boolean isVisible() { return workspace.getObject().isTransformationFinished(); } }; result.add(update); // result : report File reportFile = workspace.getObject().getReportFile(); DownloadLink report = new DownloadLink("log", reportFile, reportFile.getName()); update.add(report); // result : file list IModel<? extends List<File>> resultFilesModel = new LoadableDetachableModel<List<File>>() { private static final long serialVersionUID = -7971872898614031331L; @Override protected List<File> load() { return Arrays.asList(workspace.getObject().getTargetFolder().listFiles()); } }; final ListView<File> fileList = new ListView<File>("file", resultFilesModel) { private static final long serialVersionUID = -8045643864251639540L; @Override protected void populateItem(ListItem<File> item) { // download link DownloadLink download = new DownloadLink("download", item.getModelObject(), item.getModelObject().getName()); item.add(download); // file name download.add(new Label("name", item.getModelObject().getName())); } }; update.add(fileList); // leaseEnd String leaseEnd; try { leaseEnd = workspaces.getLeaseEnd(workspaceId).toString(DateTimeFormat.mediumDateTime()); } catch (IOException e) { leaseEnd = "unknown"; } add(new Label("leaseEnd", leaseEnd)); boolean transformationFinished = workspace.getObject().isTransformationFinished(); if (transformationFinished) { // disable job timer jobs.getTimer().stopOnNextUpdate(); } else { // timer add(new AbstractAjaxTimerBehavior(Duration.milliseconds(1500)) { private static final long serialVersionUID = -3726349470723024150L; @Override protected void onTimer(AjaxRequestTarget target) { if (workspace.getObject().isTransformationFinished()) { // update status and result target.add(status); target.add(result); // stop timers stop(target); jobs.getTimer().stopOnNextUpdate(); } } }); } }
From source file:eu.esdihumboldt.hale.server.webtransform.war.pages.UploadPage.java
License:Open Source License
/** * @see BasePage#addControls(boolean)//from w w w . ja v a2s .com */ @Override protected void addControls(boolean loggedIn) { super.addControls(loggedIn); String projectId = getPageParameters().get(PARAMETER_PROJECT).toOptionalString(); if (projectId != null) { if (environmentService.getEnvironment(projectId) == null) { throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, "Transformation project not found."); } add(new UploadAndTransForm("action", projectId)); } else { throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, "No transformation project specified."); } }
From source file:fiftyfive.wicket.util.ParameterSpec.java
License:Apache License
/** * Use this method in your page constructor to parse the * PageParameters. The specified bean will be populated by calling the * appropriate setters as defined by this ParameterSpec. For example, if * the ParameterSpec has been created parameters that map "id" and "slug" * properties, the <code>setId()</code> and <code>setSlug()</code> * methods of the bean will be called with values taken from the * PageParameters.//from w w w . j a va 2 s .c om * * @param params Values will be taken from these PageParameters * @param beanToPopulate Values will be set using appropriate setters on * this bean * * @throws AbortWithHttpErrorCodeException with a 404 status code if * {@code throw404OnParseError} is {@code true} and a parsing exception * occurs. For example, this could happen if the bean property for "id" is * of type Long, but the parameter value being parsed is not numeric. * If {@code throw404OnParseError} is {@code false}, skip past properties * with parsing errors. */ public void parseParameters(PageParameters params, T beanToPopulate, boolean throw404OnParseError) { for (PageParameters.NamedPair pair : params.getAllNamed()) { String key = pair.getKey(); String expr = this.mapping.get(key); String val = pair.getValue(); if (val != null) { try { PropertyResolver.setValue(expr, beanToPopulate, val, null); } catch (ConversionException ce) { if (throw404OnParseError) { throw new AbortWithHttpErrorCodeException(404, "Not found"); } } } } }
From source file:org.artifactory.webapp.wicket.page.browse.listing.ArtifactListPage.java
License:Open Source License
/** * sort retrieved browsable item from repository * @param repoPath - repository path// w ww .j av a2 s.co m * @param requestProps - request properties * @param rootNodesFilterResult - object hold the List node acceptance status flag,if flagged to false meaning * at least one node has read permission issue by user * @return list of sorted browsable item */ private List<? extends BaseBrowsableItem> getItems(RepoPath repoPath, Properties requestProps, RootNodesFilterResult rootNodesFilterResult) { boolean updateRootNodesFilterFlag = authorizationService.isAnonymous(); List<? extends BaseBrowsableItem> items; try { items = getBrowsableItemsList(repoPath, requestProps, rootNodesFilterResult, updateRootNodesFilterFlag); } catch (Exception e) { throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, e.getMessage()); } Collections.sort(items, new ItemInfoComparator()); return items; }
From source file:org.artifactory.webapp.wicket.page.browse.simplebrowser.LocalRepoBrowserPanel.java
License:Open Source License
public LocalRepoBrowserPanel(String id, final RepoPath repoPath, Properties requestProps) { super(id);//from w w w . ja v a 2 s . c o m add(new BreadCrumbsPanel("breadCrumbs", repoPath.getId())); List<BaseBrowsableItem> dirItems; try { BrowsableItemCriteria.Builder builder = new BrowsableItemCriteria.Builder(repoPath) .requestProperties(requestProps); boolean includeChecksums = !ConstantValues.uiHideChecksums.getBoolean(); builder.includeChecksums(includeChecksums); BrowsableItemCriteria criteria = builder.build(); dirItems = repoBrowseService.getLocalRepoBrowsableChildren(criteria); } catch (Exception e) { log.debug("Exception occurred while trying to get browsable children for repo path " + repoPath, e); throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, e.getMessage()); } dirItems.add(0, getPseudoUpLink(repoPath)); final String hrefPrefix = RequestUtils.getWicketServletContextUrl(); add(new ListView<BaseBrowsableItem>("items", dirItems) { @Override protected void populateItem(ListItem<BaseBrowsableItem> listItem) { BaseBrowsableItem browsableItem = listItem.getModelObject(); AbstractLink link; if (isEmpty(browsableItem.getRepoKey())) { link = createRootLink(); } else { String itemRelativePath = browsableItem.getRelativePath(); String name = browsableItem.getName(); if (browsableItem.isFolder() && StringUtils.isNotBlank(itemRelativePath)) { itemRelativePath += "/"; name += name.equals(BrowsableItem.UP) ? "" : "/"; } String href = hrefPrefix + "/" + ArtifactoryRequest.SIMPLE_BROWSING_PATH + "/" + repoPath.getRepoKey() + "/" + itemRelativePath; link = new ExternalLink("link", href, name); } link.add(new CssClass(getCssClass(browsableItem))); listItem.add(link); } }); }
From source file:org.artifactory.webapp.wicket.page.browse.simplebrowser.RemoteRepoBrowserPanel.java
License:Open Source License
public RemoteRepoBrowserPanel(String id, final RepoPath repoPath, Properties requestProps) { super(id);//from w w w . ja v a2s. c om add(new BreadCrumbsPanel("breadCrumbs", repoPath.getId())); List<BaseBrowsableItem> remoteChildren; try { BrowsableItemCriteria.Builder builder = new BrowsableItemCriteria.Builder(repoPath) .requestProperties(requestProps); boolean includeChecksums = !ConstantValues.uiHideChecksums.getBoolean(); builder.includeChecksums(includeChecksums); BrowsableItemCriteria criteria = builder.build(); remoteChildren = repoBrowseService.getRemoteRepoBrowsableChildren(criteria); if (!includeChecksums) { remoteChildren = BrowseUtils.filterChecksums(remoteChildren); } } catch (Exception e) { log.debug("Exception occurred while trying to get browsable children for repo path " + repoPath, e); throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, e.getMessage()); } remoteChildren.add(0, getPseudoUpLink(repoPath)); final String hrefPrefix = RequestUtils.getWicketServletContextUrl(); add(new ListView<BaseBrowsableItem>("items", remoteChildren) { @Override protected void populateItem(ListItem<BaseBrowsableItem> listItem) { BaseBrowsableItem browsableItem = listItem.getModelObject(); AbstractLink link; if (isEmpty(browsableItem.getRepoKey())) { link = createRootLink(); } else if (browsableItem.isRemote() && ((RemoteBrowsableItem) browsableItem).getEffectiveUrl() != null) { String href = ((RemoteBrowsableItem) browsableItem).getEffectiveUrl(); link = new ExternalLink("link", href, browsableItem.getName()); } else { String itemRelativePath = browsableItem.getRelativePath(); String name = browsableItem.getName(); if (browsableItem.isFolder() && StringUtils.isNotBlank(itemRelativePath)) { itemRelativePath += "/"; name += name.equals(BrowsableItem.UP) ? "" : "/"; } String href = hrefPrefix + "/" + ArtifactoryRequest.SIMPLE_BROWSING_PATH + "/" + repoPath.getRepoKey() + "/" + itemRelativePath; link = new ExternalLink("link", href, name); } link.add(new CssClass(getCssClass(browsableItem))); addGlobeIcon(listItem, browsableItem.isRemote()); listItem.add(link); } }); }
From source file:org.artifactory.webapp.wicket.page.build.page.BuildBrowserRootPage.java
License:Open Source License
/** * Throws an AbortWithHttpErrorCodeException with the given status and message * * @param status Status to set for error * @param errorMessage Message to display in the error *///from w w w . ja v a2 s.c o m private void throwError(int status, String errorMessage) { logError(errorMessage); throw new AbortWithHttpErrorCodeException(status, errorMessage); }
From source file:org.cast.cwm.data.resource.BinaryFileDataResource.java
License:Open Source License
/** * @see org.apache.wicket.request.resource.AbstractResource#newResourceResponse(org.apache.wicket.request.resource.IResource.Attributes) *///from w ww . ja v a2 s . c o m @Override protected ResourceResponse newResourceResponse(final Attributes attributes) { final ResourceResponse response = new ResourceResponse(); bfd = cwmService.getById(BinaryFileData.class, id).getObject(); if (bfd == null) throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, "Data not found [id=" + id + "]"); String contentType = bfd.getMimeType(); response.setContentType(contentType); response.setLastModified(Time.valueOf(bfd.getLastModified())); response.setContentLength(bfd.getData().length); if (response.dataNeedsToBeWritten(attributes)) { // Should we set file name like ByteArrayResource does? response.setWriteCallback(new WriteCallback() { @Override public void writeData(final Attributes attributes) { attributes.getResponse().write(bfd.getData()); } }); } return response; }