В моем веб-приложении есть 3 основных раздела: 1. клиент 2. поставщик 3. администратор
Я использую фильтр сеанса java для проверки сеанса пользователя и предоставления доступа к определенной части веб-сайта.следовательно, клиент имеет доступ только к разделу клиента, поставщик имеет доступ к разделу поставщика, а администратор имеет доступ к разделу администратора.
Фильтр сеансов для клиента уже реализован и работает нормально.он проверяет подлинность клиента и дает доступ к подпапке клиента, в результате чего у меня есть несколько jsp.
, если я хотел, чтобы фильтры проверяли подлинность раздела поставщика и администратора и разрешали им доступ на основе их уровня пользователя.
мне нужно создать еще 2 фильтра - администратор и поставщик?
В настоящее время моя реализация для клиента:
public class SessionFilter implements Filter {
private FilterConfig config;
/** Creates new SessionFilter */
public SessionFilter() {
}
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("Instance created of " + getClass().getName());
this.config = filterConfig;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws java.io.IOException, ServletException {
HttpSession session = ((HttpServletRequest) request).getSession();
ServletContext context = config.getServletContext();
/*
* use the ServletContext.log method to log filter messages
*/
context.log("doFilter called in: " + config.getFilterName() + " on "
+ (new java.util.Date()));
// log the session ID
context.log("session ID: " + session.getId());
// Find out whether the logged-in session attribute is set
Object u= session.getAttribute("users");
if (u != null){
chain.doFilter(request, response);
}
else{
//request.getRequestDispatcher("../index.jsp").forward(request, response);
((HttpServletResponse) response).sendRedirect(((HttpServletResponse) response).encodeRedirectURL("../index.jsp?error=userpriv"));
}
}
public void destroy() {
}
}
Вот мой web.xml
<filter>
<filter-name>SessionFilter</filter-name>
<filter-class>controller.SessionFilter</filter-class>
<init-param>
<param-name>avoid-urls</param-name>
<param-value>index.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SessionFilter</filter-name>
<url-pattern>/users/*</url-pattern>
</filter-mapping>