在Servlet API中,当您想要控制,预处理和/或后处理特定请求时,通常使用Servlet。但是当您想根据特定条件过滤/修改常见请求和/或响应时,过滤器更适合。
Wildfly Java 应用程序:对某些 URL 进行主机标头攻击的漏洞
我有一个在 Wildfly 上运行的 Java 应用程序。我们发现该应用程序似乎容易受到针对某些 URL 的主机标头攻击。该应用程序有几个过滤器应该处理......
如何正确替换HttpServletRequest.login函数
我正在使用 Servlet,我使用此链接创建了我自己的登录版本,但我一直收到错误消息。不知道我做错了什么。 登录表单看起来有点像这样: ...
如何从 jakarta servlet Filter 访问数据库?
我正在开发一个 Spring Boot Web 应用程序,我正在实现一个过滤器 (jakarta.servlet.Filter) 以进行身份验证。过滤器需要数据库中的一些信息才能进行身份验证...
Java 过滤器:解码 ServletRequest,处理解码后的数据,获取并编码结果和响应用户
我正在使用 Spring 创建一个安全的 Java Web 应用程序。为此,我使用 AES 加密来解密和加密请求、响应数据。 我想为此功能使用过滤器。这是...
从 ContentCachingResponseWrapper 中什么都得不到
我有一个用于登录我的应用程序的过滤器。现在,我实现了第二个过滤器来将数据存储在 S3 中。问题是我只能读取来自 ContentCachingResponseWrapper 的响应,只有我禁用了第一个 fi ...
这里是web.xml代码: 这里是web.xml代码: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>Projeto_joas</display-name> <resource-ref> <res-ref-name>jdbc/DiaDiaDev</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> <servlet> <display-name>FacesServlet</display-name> <servlet-name>FacesServlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>FacesServlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> <context-param> <param-name>com.sun.faces.expressionFactory</param-name> <param-value>com.sun.el.ExpressionFactoryImpl</param-value> </context-param> <!-- <filter> --> <!--<filter-name>FilterHibernate</filter-name> --> <!--<filter-class>util.filter.ConexaoHibernateFilter</filter-class> --> <!--</filter> --> <!--<filter-mapping> --> <!-- <filter-name>FilterHibernate</filter-name> --> <!--<url-pattern>*.jsf</url-pattern> --> <!--</filter-mapping> --> </web-app> 服务器以这种方式运行得很好,如果我删除过滤器上的评论,它不会 开始并会抛出那些异常: 严重:子容器在启动期间失败 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost]] 原因:org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost]] 原因:org.apache.catalina.LifecycleException:子容器在启动期间失败 和 警告:无法检索容器 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Projeto_joas]] 的 JNDI 命名上下文,因此未对该容器执行清理 javax.naming.NamingException:没有命名上下文绑定到此类加载器 过滤器类: package util.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import org.hibernate.SessionFactory; import util.HibernateUtil; public class ConexaoHibernateFilter implements Filter { private SessionFactory sf; @Override public void init(FilterConfig arg0) throws ServletException { this.sf = HibernateUtil.getSessionFactory(); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException { try { this.sf.getCurrentSession().beginTransaction(); chain.doFilter(servletRequest, servletResponse); this.sf.getCurrentSession().getTransaction().commit(); this.sf.getCurrentSession().close(); } catch (Throwable ex) { try { if (this.sf.getCurrentSession().getTransaction().isActive()) { this.sf.getCurrentSession().getTransaction().rollback(); } } catch (Throwable t) { t.printStackTrace(); } throw new ServletException(ex); } } @Override public void destroy() { // TODO Auto-generated method stub } } 对我来说,同样的错误也来了。我犯的错误是我没有添加任何主体来破坏和初始化方法。 所以对我来说,它通过简单地在 destroy 和 init 方法的主体中添加一些打印语句来工作。 @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.println("Error 404 bad request"); // chain.doFilter(request, response); } @Override public void destroy() { System.out.println("destroyed"); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody } @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("initilized"); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody }
我正在尝试将包含图像文件的表单数据从 java 脚本发送到 java servlet 过滤器。以下是ajax请求的代码。 功能显示卡(){ addProductBtn.disabled = t...
在已经构建响应后异步处理 httpservletrequest
我正在尝试实现一个 servlet 过滤器,它构建一个成功的响应,并异步处理请求。因此,GET 请求的客户端将需要使用 s... 尽快做出响应
如何在 WAR 中使用注释定义 servlet 过滤器执行顺序
如果我们在 WAR 自己的 web.xml 中定义 webapp 特定的 servlet 过滤器,那么过滤器的执行顺序将与它们在 web.xml 中定义的顺序相同。 但是,如果我们定义...
ThreadLocal 返回 null,即使在 HandlerInterceptor 中设置之后
我的 ThreadLocal 变量在 HandlerInterceptor 中为每个请求设置,但有时在服务层访问时返回 null 而不是预期值。 我假设
Hi how can I put this on filter in web.xml: abcxyz{params}info?id=12 I dont want to include abcxyz{params}more?id=12 and specific abcxyz this is not working: abc...
我正在做一个CMS。我的代码在url "market "处调用的servlet的doGet()函数中。我想要一个HttpServletRequestWrapper,它将通过为url "page "设置的所有过滤器。I ...
public class FilterText { Path path; String p; List word=new ArrayList (); public FilterText(String[] words) { this.path=Paths.get(words[1]); ...
在Spring Boot应用程序中,我使用MockMvc对控制器进行单元测试,我有一个servlet过滤器,需要为每个请求运行,但我想在运行单元测试和请求时忽略它。我有一个servlet过滤器,需要为每个请求运行,但我想忽略它时,运行单元测试和请求... ...
我需要构建一种处理OAuth2流的Java Proxy +。想法是登录此“ Proxy +”并执行OAuth2流程,直到Proxy +收到令牌+刷新令牌为止。之后...
((对不起我的英语,我会说法语)在我正在写的过滤器中,我需要知道用户询问的servlet的名称。它将允许我检查servlet是否与数据库条目匹配。...
我创建了一个简单的Filter类,该类将一些响应标头添加到所有请求的资源中。我创建了一个jar文件,并将其添加到tomcat lib文件夹中。过滤器也被添加到...
我创建了一个简单的Filter类,该类将一些响应标头添加到所有请求的资源中。我创建了一个jar文件,并将其添加到tomcat lib文件夹中。过滤器也被添加到...
如何在Spring Boot Rest过滤器方法中处理自定义异常?
我想在WebSecurityConfigurerAdapter过滤器方法中添加自定义异常处理程序。我正在使用自定义过滤器从当前请求中获取授权API密钥。然后匹配此API ...
Spring Boot升级到2.2.5,导致不存在所需的请求部分'file'
因此,我们将Spring Boot从2.0.3升级到了2.2.5,这导致文件导入开始失败。所以我的代码是这样的:public Result importFile(@RequestParam(value =“ ...