Package sk.iway.iwcm
Class PathFilter
java.lang.Object
sk.iway.iwcm.PathFilter
- All Implemented Interfaces:
jakarta.servlet.Filter
Filter premapovava volania na virtualne adresare a stranky do volani na
spravne docid
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic booleanbypassPath(String path, jakarta.servlet.ServletRequest servletRequest) static booleancheckAdmin(jakarta.servlet.http.HttpServletRequest request) Skontroluje, ci je mozne pristupit k admin castistatic booleancheckWebAccess(jakarta.servlet.http.HttpServletRequest request, String path) Skontroluje, ci je mozne pristupit k verejnej casti webu, nie admin castivoiddestroy()Take this filter out of service.static booleandoFileForbiddenRedirect(EditForm ef, Identity user, String originalPath, jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.http.HttpServletResponse res) Vykona redirect (ak treba) na zobrazenie logon stranky / zamietnutia pristupu k suboru (/files/*), vrati true, ak bol redirect vykonanyvoiddoFilter(jakarta.servlet.ServletRequest servletRequest, jakarta.servlet.ServletResponse servletResponse, jakarta.servlet.FilterChain chain) Select and set (if specified) the character encoding to be used to interpret request parameters for this request.static booleanforwardToMobileOrTablet(String jspFileName, jakarta.servlet.jsp.PageContext context) Ak existuje _mobile.jsp verzia zadaneho JSP vykona nan interny forward a vrati true pre ukoncenie povodneho JSP, nieco ako: if (PathFilter.forwardToMobileOrTablet("/components/magzilla/new_bug_popup.jsp", pageContext)) return;static Stringstatic StringVrati REAL PATH pre zadane URL aj s detekciou Custom Path (pouzitelne len pre staticke subory)static StringgetHttpsRedirectUrl(jakarta.servlet.http.HttpServletRequest request) Vrati URL adresu pre httpS presmerovaniestatic StringgetOrigPath(jakarta.servlet.http.HttpServletRequest request) static StringgetOrigPathDocId(jakarta.servlet.http.HttpServletRequest request) Vrati adresu povodnej stranky, v pripade DOCID liniek vratane parametra docidstatic StringgetOrigPathUpload(jakarta.servlet.http.HttpServletRequest request) Vrati adresu povodnej stranky, v pripade DOCID liniek vratane docid s pridanym parametrom pre uload suboru pre stripes (aby to Stripes spracoval)static StringgetRealPath(String url) Vrati cestu k suboru na disku z daneho URL, berie do uvahy aj custom pathstatic StringgetXRobotsTagValue(DocDetails docDetails) Builds the X-Robots-Tag value for a document from its searchability and link-follow settings.voidinit(jakarta.servlet.FilterConfig filterConfig) Inicializacia servletustatic booleanisForceDownload(String fileName) static booleanisNoCacheCookieRequired(jakarta.servlet.http.HttpServletRequest request) Overi, ci je mozne pouzit nginx proxy rezim (konstanta nginxProxyMode), ak je povoleny, overuje este: prihlaseneho pouzivatela (rezim nedostupny) prepnutie verzie cez forceBrowserDetector (ak je ina verzia ako pc nedostupne)static EditFormisPasswordProtected(String url, jakarta.servlet.http.HttpServletRequest request) Skontroluje, ci zadane URL je v protected zonestatic EditFormisPasswordProtected(String url, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpSession session) Skontroluje prava k danemu URL (suboru)static voidpreviewPageHeaders(String path, DocDetails doc, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Previews selected page headers using the same URL, custom-header and document rules.static voidregisterDynamicForward(String name, DynamicForward dynamicForward) static voidNacita z databazy zoznam adresarov, v ktorych su chranene suborystatic voidstatic voidstatic voidstatic voidsetAccessControlAllowOrigin(String url, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Nastavenie hlavicky Access-Control-Allow-Originstatic voidsetCacheHeaders(int myCacheStaticContentSeconds, jakarta.servlet.http.HttpServletResponse response) Nastavi cache hlavicky na pozadovanu hodnotu v sekundachstatic voidsetDownloadHeaders(String path, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Nastavi HTTP hlavicku Content-Disposition na hdonotu attachment;filename=abc pre subory v adresaroch /files a /images ktore maju priponu definovanu v konf.static voidsetFeaturePolicy(jakarta.servlet.http.HttpServletResponse response) Nastavi hlavicku Feature-Policy podla konfiguracnej premennej featurePolicyHeaderstatic voidsetHeader(jakarta.servlet.http.HttpServletResponse response, String headerName, String constantName) Nastavi HTTP hlavicku podla nazvu konfiguracnej premennejstatic voidsetNginxProxyMode(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Pouziva sa v spojeni s nginx cache proxy serverom, nastavuje cookie s nazvom nc ktora nasledne v dalsich http requestoch od klienta zamedzi posielaniu cache vysledkov (ak je nastavena na hodnotu 1)static voidsetNoCacheHeaders(jakarta.servlet.http.HttpServletResponse response) Disables response caching.static booleansetStaticContentHeaders(String path, Identity user, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Nastavi cache hlavicky podla konf.static voidsetUaCompatibleAdmin(String path, jakarta.servlet.http.HttpServletResponse response) static voidsetXRobotsTagValue(String url, jakarta.servlet.http.HttpServletResponse response) Sets the X-Robots-Tag response header for a URL using the configured URL match rules and the defaultxRobotsTagValueconstant.static voidsetXRobotsTagValue(String url, jakarta.servlet.http.HttpServletResponse response, DocDetails docDetails) Sets the X-Robots-Tag response header when the URL matches one of the configuredxRobotsTagUrlspatterns.static voidstatic booleanwriteAndCacheFile(String url, jakarta.servlet.http.HttpServletResponse response) Cache pre staticke subory, cachuju sa len subory pre ktore sa nastavuje setStaticContentHeaders
-
Field Details
-
REQUEST_START_TIME
- See Also:
-
-
Constructor Details
-
PathFilter
public PathFilter()
-
-
Method Details
-
init
public void init(jakarta.servlet.FilterConfig filterConfig) throws jakarta.servlet.ServletException Inicializacia servletu- Specified by:
initin interfacejakarta.servlet.Filter- Throws:
jakarta.servlet.ServletException
-
registerDynamicForward
-
unregisterDynamicForward
-
prepareTemplates
public static void prepareTemplates() -
getCustomPath
-
getCustomPathRealPath
Vrati REAL PATH pre zadane URL aj s detekciou Custom Path (pouzitelne len pre staticke subory)- Parameters:
url-- Returns:
-
destroy
public void destroy()Take this filter out of service.- Specified by:
destroyin interfacejakarta.servlet.Filter
-
doFilter
public void doFilter(jakarta.servlet.ServletRequest servletRequest, jakarta.servlet.ServletResponse servletResponse, jakarta.servlet.FilterChain chain) throws IOException, jakarta.servlet.ServletException Select and set (if specified) the character encoding to be used to interpret request parameters for this request.- Specified by:
doFilterin interfacejakarta.servlet.Filter- Parameters:
chain- The filter chain we are processing- Throws:
IOException- if an input/output error occursjakarta.servlet.ServletException- if a servlet error occurs
-
checkWebAccess
Skontroluje, ci je mozne pristupit k verejnej casti webu, nie admin casti- Parameters:
request-- Returns:
-
checkAdmin
public static boolean checkAdmin(jakarta.servlet.http.HttpServletRequest request) Skontroluje, ci je mozne pristupit k admin casti- Parameters:
request-- Returns:
-
reloadProtectedDirs
public static void reloadProtectedDirs()Nacita z databazy zoznam adresarov, v ktorych su chranene subory -
isPasswordProtected
public static EditForm isPasswordProtected(String url, jakarta.servlet.http.HttpServletRequest request) Skontroluje, ci zadane URL je v protected zone- Parameters:
url-- Returns:
- EditForm ak je chranene, alebo null
-
isPasswordProtected
public static EditForm isPasswordProtected(String url, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpSession session) Skontroluje prava k danemu URL (suboru)- Parameters:
url- - url adresa suboru z adresara /filesrequest- - ak nie je null prida sa aj statistika videni (ak statistiku nechceme zaratat nastavime len session)session- - session z ktorej sa ziska identita pouzivatela- Returns:
-
doFileForbiddenRedirect
public static boolean doFileForbiddenRedirect(EditForm ef, Identity user, String originalPath, jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.http.HttpServletResponse res) throws IOException, jakarta.servlet.ServletException Vykona redirect (ak treba) na zobrazenie logon stranky / zamietnutia pristupu k suboru (/files/*), vrati true, ak bol redirect vykonany- Parameters:
ef-user-originalPath-req-res-- Returns:
- true ak je redirect vykonany, inak false
- Throws:
IOExceptionjakarta.servlet.ServletException
-
getRealPath
Vrati cestu k suboru na disku z daneho URL, berie do uvahy aj custom path- Parameters:
url- - url adresa suboru, napr. /css/page.css- Returns:
- - vrati cestu na disku, napr. /var/webapps/webjet/css/page.css
-
getOrigPath
-
getOrigPathDocId
Vrati adresu povodnej stranky, v pripade DOCID liniek vratane parametra docid- Parameters:
request-- Returns:
-
getOrigPathUpload
Vrati adresu povodnej stranky, v pripade DOCID liniek vratane docid s pridanym parametrom pre uload suboru pre stripes (aby to Stripes spracoval)- Parameters:
request-- Returns:
-
bypassPath
-
setStaticContentHeaders
public static boolean setStaticContentHeaders(String path, Identity user, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Nastavi cache hlavicky podla konf. premennej cacheStaticContentSeconds a cacheStaticContentSuffixes- Parameters:
path-user-request-response-- Returns:
-
setDownloadHeaders
public static void setDownloadHeaders(String path, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Nastavi HTTP hlavicku Content-Disposition na hdonotu attachment;filename=abc pre subory v adresaroch /files a /images ktore maju priponu definovanu v konf. premennej forceDownloadSuffixes Umozni to vyvolat download dialog napr. pre pdf subory namiesto ich zobrazenia v prehliadaci- Parameters:
path-request-response-
-
isForceDownload
-
setNoCacheHeaders
public static void setNoCacheHeaders(jakarta.servlet.http.HttpServletResponse response) Disables response caching. Call before writing the response body.- Parameters:
response- response whose cache headers should be replaced
-
setCacheHeaders
public static void setCacheHeaders(int myCacheStaticContentSeconds, jakarta.servlet.http.HttpServletResponse response) Nastavi cache hlavicky na pozadovanu hodnotu v sekundach- Parameters:
myCacheStaticContentSeconds-response-
-
writeAndCacheFile
public static boolean writeAndCacheFile(String url, jakarta.servlet.http.HttpServletResponse response) Cache pre staticke subory, cachuju sa len subory pre ktore sa nastavuje setStaticContentHeaders- Parameters:
url-- Returns:
-
setXRobotsTagValue
public static void setXRobotsTagValue(String url, jakarta.servlet.http.HttpServletResponse response) Sets the X-Robots-Tag response header for a URL using the configured URL match rules and the defaultxRobotsTagValueconstant.This overload is intended for URL-based handling when no document-specific metadata is available.
- Parameters:
url- requested URL to evaluate againstxRobotsTagUrlsresponse- HTTP response to update
-
setXRobotsTagValue
public static void setXRobotsTagValue(String url, jakarta.servlet.http.HttpServletResponse response, DocDetails docDetails) Sets the X-Robots-Tag response header when the URL matches one of the configuredxRobotsTagUrlspatterns.When
docDetailsis provided together with the specialNOT_SEARCHABLE_PAGEmarker, the header value is derived from the document state usinggetXRobotsTagValue(DocDetails). In all other cases the value is loaded from thexRobotsTagValueconfiguration constant.- Parameters:
url- requested URL or theNOT_SEARCHABLE_PAGEmarkerresponse- HTTP response to updatedocDetails- document settings used for document-specific directives, ornullfor pure URL-based configuration
-
previewPageHeaders
public static Map<String,String> previewPageHeaders(String path, DocDetails doc, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Previews selected page headers using the same URL, custom-header and document rules. The supplied servlet response is not modified. -
getXRobotsTagValue
Builds the X-Robots-Tag value for a document from its searchability and link-follow settings.The result contains only restrictive directives because crawler defaults already imply
index, follow. The method returnsnoindex,nofollow, or both when required. If no restriction applies, it returnsall.- Parameters:
docDetails- document settings used to determine robots directives- Returns:
- computed X-Robots-Tag value, or
allwhen no restriction applies
-
setUaCompatibleAdmin
public static void setUaCompatibleAdmin(String path, jakarta.servlet.http.HttpServletResponse response) -
setFeaturePolicy
public static void setFeaturePolicy(jakarta.servlet.http.HttpServletResponse response) Nastavi hlavicku Feature-Policy podla konfiguracnej premennej featurePolicyHeader- Parameters:
response-
-
setAccessControlAllowOrigin
public static void setAccessControlAllowOrigin(String url, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Nastavenie hlavicky Access-Control-Allow-Origin- Parameters:
url-response-
-
setHeader
public static void setHeader(jakarta.servlet.http.HttpServletResponse response, String headerName, String constantName) Nastavi HTTP hlavicku podla nazvu konfiguracnej premennej- Parameters:
response-headerName- - meno HTTP hlavickyconstantName- - meno konfiguracnej premennej
-
forwardToMobileOrTablet
public static boolean forwardToMobileOrTablet(String jspFileName, jakarta.servlet.jsp.PageContext context) Ak existuje _mobile.jsp verzia zadaneho JSP vykona nan interny forward a vrati true pre ukoncenie povodneho JSP, nieco ako: if (PathFilter.forwardToMobileOrTablet("/components/magzilla/new_bug_popup.jsp", pageContext)) return;- Parameters:
jspFileName-context-- Returns:
-
setNginxProxyMode
public static void setNginxProxyMode(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Pouziva sa v spojeni s nginx cache proxy serverom, nastavuje cookie s nazvom nc ktora nasledne v dalsich http requestoch od klienta zamedzi posielaniu cache vysledkov (ak je nastavena na hodnotu 1)- Parameters:
request-response-
-
isNoCacheCookieRequired
public static boolean isNoCacheCookieRequired(jakarta.servlet.http.HttpServletRequest request) Overi, ci je mozne pouzit nginx proxy rezim (konstanta nginxProxyMode), ak je povoleny, overuje este: prihlaseneho pouzivatela (rezim nedostupny) prepnutie verzie cez forceBrowserDetector (ak je ina verzia ako pc nedostupne)- Parameters:
request-- Returns:
-
getHttpsRedirectUrl
Vrati URL adresu pre httpS presmerovanie- Parameters:
request-- Returns:
-
resetResponseHeaders
public static void resetResponseHeaders() -
resetCacheStaticContentSeconds
public static void resetCacheStaticContentSeconds() -
resetBlockedPaths
public static void resetBlockedPaths()
-