List of usage examples for org.springframework.http HttpStatus PERMANENT_REDIRECT
HttpStatus PERMANENT_REDIRECT
To view the source code for org.springframework.http HttpStatus PERMANENT_REDIRECT.
Click Source Link
From source file:de.appsolve.padelcampus.filter.LoginFilter.java
/** * @param request/*from www .j ava 2 s . com*/ * @param response * @param chain * @throws java.io.IOException * @throws javax.servlet.ServletException * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) */ @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) { HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse = (HttpServletResponse) response; String requestURI = httpRequest.getRequestURI(); for (Pattern pattern : NO_FILTER_LIST) { if (pattern.matcher(requestURI).matches()) { sessionUtil.setCustomer(httpRequest, null); chain.doFilter(request, response); return; } } CustomerI customer = sessionUtil.getCustomer(httpRequest); if (customer == null) { String hostHeader = httpRequest.getHeader("host"); if (!StringUtils.isEmpty(hostHeader)) { String[] hostHeaderSplit = hostHeader.split(":"); customer = customerDAO.findByDomainName(hostHeaderSplit[0]); } if (customer == null) { String url = ""; String serverName = httpRequest.getServerName(); if (!StringUtils.isEmpty(serverName)) { String[] domainParts = serverName.split("\\."); if (domainParts.length > 2) { url = httpRequest.getScheme() + "://" + domainParts[domainParts.length - 2] + "." + domainParts[domainParts.length - 1]; if (httpRequest.getScheme().equals("http") && httpRequest.getServerPort() != 80) { url += ":" + httpRequest.getServerPort(); } } } url += PATH_START_PAGE; httpResponse.setStatus(HttpStatus.PERMANENT_REDIRECT.value()); httpResponse.sendRedirect(url); return; } sessionUtil.setCustomer(httpRequest, customer); } //login user in case of valid login cookie Player user = sessionUtil.getUser(httpRequest); if (user == null) { Cookie[] cookies = httpRequest.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName() != null && cookie.getName().equals(COOKIE_LOGIN_TOKEN)) { String cookieValue = cookie.getValue(); if (StringUtils.isEmpty(cookieValue)) { loginUtil.deleteLoginCookie(httpRequest, httpResponse); } else { String[] cookieValueSplit = cookieValue.split(":"); if (cookieValueSplit.length != 2) { loginUtil.deleteLoginCookie(httpRequest, httpResponse); } else { String uuid = cookieValueSplit[0]; String loginCookieRandomValue = cookieValueSplit[1]; LoginCookie loginCookie = loginUtil.isValidLoginCookie(uuid, loginCookieRandomValue); if (loginCookie == null) { loginUtil.deleteLoginCookie(httpRequest, httpResponse); } else { Player player = playerDAO.findByUUID(loginCookie.getPlayerUUID()); if (player == null) { loginUtil.deleteLoginCookie(httpRequest, httpResponse); } else { //log user in sessionUtil.setUser(httpRequest, player); //update loginCookieHash loginUtil.updateLoginCookie(httpRequest, httpResponse); } } break; } } } } } } moduleUtil.initModules(httpRequest); } chain.doFilter(request, response); }