Код я использовал, чтобы запретить пользователю доступ к URL без входа выглядит следующим образом:Как запретить пользователю с гостевыми правами доступ к страницам с правами администратора, введя URL-адрес в браузере?
web.xml
<filter>
<filter-name>Filtro_Autenticar</filter-name>
<filter-class>Controlador.Filtro_Autenticar</filter-class>
</filter>
<filter-mapping>
<filter-name>Filtro_Autenticar</filter-name>
<url-pattern>/vistas/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
Filtro_Autenticar.java
public class Filtro_Autenticar implements Filter {
public void doFilter (ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpSession session;
if (req instanceof HttpServletRequest){
session = ((HttpServletRequest)req).getSession();
//Eliminar la caché
HttpServletResponse hsr = (HttpServletResponse) res;
hsr.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
hsr.setHeader("Pragma", "no-cache"); // HTTP 1.0.
hsr.setDateHeader("Expires", 0); // Proxies.
//Verificar si la sesion es diferente de null
if (session.getAttribute("user") != null) {
//solo deja pasar a la zona restringida al usuario
chain.doFilter(req, res);
} else {
((HttpServletResponse)res).sendRedirect(((HttpServletRequest)req).getContextPath()+ "/index.jsp");
}
}
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
String exclude= filterConfig.getInitParameter("exclude");
}
@Override
public void destroy() {
}
}
Doing использование этого кода может ограничивать доступ к некоторым страницам jsp в зависимости от пользователя, который вошел в систему?
Я Передача пользовательских данных в этом случае 'запроса. getSession(). setAttribute («пользователь», пользователь); 'и я получаю данные таким образом' Usuario user = (Usuario) session.getAttribute («user»); 'и теперь условие выглядит следующим образом: –
' if (session.getAttribute ("user")! = null) { if ("0" .equals (user.getGrupo(). toString())) { chain.doFilter (req, res); } еще { } // соло дежа Pasar ла зона restringida аль Новичок} еще { // redirecciona аль index.jps ((HttpServletResponse) Рез) .sendRedirect (((HttpServletRequest) REQ) .getContextPath () + "/index.jsp"); } 'и теперь, как сделать, когда фильтр равен 1 –