【发布时间】:2015-02-10 21:36:01
【问题描述】:
我正在尝试为身份验证设置过滤器。
我的Filter类如下
public class AuthenticationFilter extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = -7678740843612123432L;
public void destroy() {
// TODO Auto-generated method stub
}
///Other methods...
public void doFilter(HttpServletRequest request, HttpServletResponse response,
FilterChain chain) throws IOException, ServletException {
Map<String,String> map = getHeadersInfo(request);
chain.doFilter(request, response);
}
///Other methods.
对应的web.xml如下。
<filter>
<filter-name>AuthFilter</filter-name>
<filter-class>com.mypackage.AuthenticationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在搜索中,我发现很多人因为pom.xml中的不正确依赖关系而面临这个问题。但我确保相应的 jar 具有provided 范围。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
</dependency>
<!-- Other dependencies-->
对我可能做错的事情有什么想法吗?链接/建议表示赞赏。
【问题讨论】:
-
如果是filter,不需要实现Filter吗?tutorialspoint.com/servlets/servlets-writing-filters.htm
-
知道了,我不太习惯将
ServletRequest转换为HttpServletRequest,但似乎没有办法。 -
一一进行,首先确保您的Filter编译正常,然后您可以将ServletRequest处理为HttpServletRequest。
-
它工作正常,谢谢。但这是最佳做法吗?
-
过滤身份验证?一般来说,过滤器检查请求并决定下一步,它们自己不做任何身份验证逻辑。
标签: java maven servlets servlet-filters