- You just used AuthenticationFilter in you Application.
- AUTH_KEY is define LoginController to get userId
- @Secured is defined web.xml file for filter this path.
- @/Secured/temp/ is defined for image in my project directory.
- @/Secured/login.xhtml is defined after servlet configure initial it will login.xhtml redirect.
按照娄代码:
import java.io.IOException;
import javax.faces.application.ResourceHandler;
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 javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Md. Amran Hossain
*/
@WebFilter("/Secured/*")
public class AuthenticationFilter implements Filter {
private FilterConfig config;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.config = filterConfig;
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (((HttpServletRequest) request).getSession().getAttribute(LoginController.AUTH_KEY) == null
&& !((HttpServletRequest) request).getRequestURI().endsWith("/Secured/login.xhtml")
&& !((HttpServletRequest) request).getRequestURI().contains("/Secured/temp/")
&& !((HttpServletRequest) request).getRequestURI().startsWith(((HttpServletRequest) request).getContextPath() + "/Secured" + ResourceHandler.RESOURCE_IDENTIFIER)) {
((HttpServletResponse) response).sendRedirect(((HttpServletRequest) request).getContextPath() + "/Secured/login.xhtml");
} else {
chain.doFilter(request, response);
}
}
@Override
public void destroy() {
this.config = null;
}
}
把这个配置在web.xml中
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/Secured/*</url-pattern>
</servlet-mapping>
[没有的.htaccess工作的Apache-tomcat的(HTTPS的可能重复:// stackoverflow.com/questions/10528552/htaccess-not-working-apache-tomcat) – Raptor
这些图像显示在html页面上吗? – Nurjan
你可以考虑重定向吗? – harshavmb