universe@1: /* universe@1: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. universe@34: * universe@24: * Copyright 2018 Mike Becker. All rights reserved. universe@34: * universe@1: * Redistribution and use in source and binary forms, with or without universe@1: * modification, are permitted provided that the following conditions are met: universe@1: * universe@1: * 1. Redistributions of source code must retain the above copyright universe@1: * notice, this list of conditions and the following disclaimer. universe@1: * universe@1: * 2. Redistributions in binary form must reproduce the above copyright universe@1: * notice, this list of conditions and the following disclaimer in the universe@1: * documentation and/or other materials provided with the distribution. universe@1: * universe@1: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" universe@1: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE universe@1: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE universe@1: * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE universe@1: * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR universe@1: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF universe@1: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS universe@1: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN universe@1: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) universe@1: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE universe@1: * POSSIBILITY OF SUCH DAMAGE. universe@34: * universe@1: */ universe@7: package de.uapcore.lightpit.modules; universe@1: universe@34: import de.uapcore.lightpit.*; universe@34: universe@6: import javax.servlet.annotation.WebServlet; universe@12: import javax.servlet.http.HttpServletRequest; universe@53: import javax.servlet.http.HttpServletResponse; universe@46: import java.util.Optional; universe@1: universe@6: /** universe@6: * Entry point for the application. universe@6: */ universe@7: @LightPITModule( universe@29: bundleBaseName = "localization.error", universe@18: modulePath = "error", universe@20: titleKey = "title", universe@20: systemModule = true universe@7: ) universe@6: @WebServlet( universe@18: name = "ErrorModule", universe@18: urlPatterns = "/error/*" universe@6: ) universe@18: public final class ErrorModule extends AbstractLightPITServlet { universe@34: universe@46: public static final String REQ_ATTR_RETURN_LINK = "returnLink"; universe@34: universe@53: @RequestMapping(requestPath = "generic", method = HttpMethod.GET) universe@53: public ResponseType onError(HttpServletRequest req, HttpServletResponse resp) { universe@46: Optional.ofNullable(req.getHeader("Referer")).ifPresent( universe@46: referer -> req.setAttribute(REQ_ATTR_RETURN_LINK, referer) universe@46: ); universe@46: universe@18: setStylesheet(req, "error"); universe@18: setDynamicFragment(req, "error"); universe@34: universe@43: return ResponseType.HTML; universe@12: } universe@1: }