Witam mam dziwny problem. Piszę aplikację webowa wykorzystuję w niej angulara oraz springa. Napisalem swoj wlasny filtr który ma sprawdzac czy wchodze na strone users jezeli tak a nie jestem zalogowany to ma mnie przekierowac na inną stronę. I sprawa jest o tyle dziwna że przekierowanie się wykonuje bo przekierowuje w konsoli pokazuje mi zapytania hibernetowe ze strony na ktora powinien przekierowac oraz po wcisnieciu f12 na stronie i prześledzeniu zakladki network widac ze przekierowanie fizycznie sie wykonuje ale nie zmienia mi adresu url na stronie oraz zostaje strona ta z ktorej powinien przekierowac a po odswiezeniu strony laduje od nowa strone users przekierowuje na devices ale nadal wyswietla users. Czy może to być sprawka angulara? Zdawalo mi się ze redirect powinien zmieniac adres url a nie robi tego. Od razu zaznaczam że dostałem polecenie aby przekierowanie było realizowane z poziomu filtru.
Kod filtru:
public class AutorizationFilter implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
// *************************************
boolean allowed = true;
List<String> urls = new ArrayList<String>();
urls.add("/SmartHome-wepapp/users");
urls.add("http://localhost:8080/SmartHome-wepapp/#/users");
String url = request.getRequestURI();
System.out.println(url);
if (urls.contains(url))
allowed = false;
if (allowed == false) {
// *********************************
HttpSession session = request.getSession(false);
if (session == null) {
// //session = request.getSession();
//// session.setAttribute("LogedUser",HelperClass.getRandomUser()
// );
// session.setAttribute("LogedUser",new User("Heniek", "aaa",
// "", "", "", "", Role.ADMIN) );
// System.out.println("Dodano usera do sesji");
System.out.println("POWINNO BYC PRZEKIEROWANIE");
// response.reset();
/// response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
// response.setHeader("Location", "loginPage.html");
// req.getRequestDispatcher("#loginPage").forward(req, resp);
// System.out.println("NIE POSZLO PRZEKIEROWANIE");
String contextPath = request.getContextPath();
System.out.println("Powinno pojsc na: "+contextPath + "/devices");
response.sendRedirect(response.encodeRedirectURL(contextPath + "/devices") );
// response.sendRedirect("/loginPage.html");
// response.setContentType("text/html");
// chain.doFilter(req, resp);
return;
} else {
chain.doFilter(req, resp);
}
}
else{
chain.doFilter(req, resp);
System.out.println("doszedlAnie powinien");
}
/**
* if(session==null){ response.sendRedirect("loginPage.html"); }
*/
// System.out.println("zalogowany jako: " +
// session.getAttribute("LogedUser"));
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}