Commit 79b85ff5 authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Added PreLoginFilter for destroying current session before login

parent 91bc3fd4
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
package it.inaf.ia2.vospace.ui;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 * Destroys the current session before a new login.
 */
public class PreLoginFilter implements Filter {

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain fc) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpSession session = request.getSession();
        if (session != null && request.getParameter("code") == null) {
            session.invalidate();
        }
        fc.doFilter(req, res);
    }
}
+10 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.core.Ordered;

@SpringBootApplication
public class VOSpaceUiApplication {
@@ -16,6 +17,15 @@ public class VOSpaceUiApplication {
        SpringApplication.run(VOSpaceUiApplication.class, args);
    }

    @Bean
    public FilterRegistrationBean preLoginFilterRegistration() {
        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new PreLoginFilter());
        bean.addUrlPatterns("/login");
        bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
        return bean;
    }

    @Bean
    public FilterRegistrationBean loginFilterRegistration() {
        FilterRegistrationBean registration = new FilterRegistrationBean();