Przekierowanie działa ale nie wyswietla strony ( response.sendRedirect)

0

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 {

	}
0

Wejdz na podstrone z przegladarki bez angulara i sprawdz czy działa

0

Tak jak stukam .html z pominięciem angulara to mi przekierowuje. Jak to w angularze ogarnac :P

0

To podejrzyj konsole sieciową w przeglądarce, czy w odpowiedzi jest redirect. Z tego co pamiętam to żądania ajaxowe w odpowiedzi też mogą spokojnie zwracać redirect

0

w konsoli przegladarki w zakladce network również pokazuje że idze kolejny request na strone na którą powienien tylko jej nie wyswietla i nie zmiania paska adresu strony. Wygląda to tak jak by chciał to zrobić z całkowitym pominięciem angulara.

0

Cześć,
Jeżeli używasz ajax-a to z tego co pamiętam response.sendRedirect nie zadziała.Jeżeli mnie pamięć nie myli to miałem podobną sytuację z logowaniem.Wysyłałem ajax-em dane logowania, sprawdzałem je, i na tej podstawie chciałem użyc response.sendRedirect i nie działało. Zwracałem więc xml i przekierowywałem używając js.

pzdr.

1 użytkowników online, w tym zalogowanych: 0, gości: 1