1

I am trying to do log-out, and I am using Spring Boot 2.1.7.RELEASE, and Google OAuth2. This is my class implementing WebSecurityConfigurerAdapter.

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .csrf().disable()
                .headers().frameOptions().disable()
                .and()
                    .authorizeRequests()
                    .antMatchers("/", "/css/**", "/images/**", "/js/**", "/h2-console/**").permitAll()
                    .antMatchers("/**").hasRole(Role.USER.name())
                    .anyRequest().authenticated()
                .and()
                    .logout().logoutUrl("/logout").invalidateHttpSession(true)
                        .clearAuthentication(true)
                        .logoutSuccessUrl("/").deleteCookies("JSESSIONID").permitAll()
                    .and().csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                .and()
                    .oauth2Login()
                        .userInfoEndpoint()
                            .userService(customOAuth2UserService);
    }

And this is my @Controller code for Http-GET request, "/logout".

@GetMapping("/logout")
    public String logout(HttpServletRequest request, HttpServletResponse response) {
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        if(authentication != null) {
            new SecurityContextLogoutHandler().logout(request, response, authentication);
        }
        SecurityContextHolder.getContext().setAuthentication(null);
        return "index";
    }

I tried almost everything I googled and saw on Stackoverflow, but I seem to fail to completely logout every time.

Roy Ra
  • 504
  • 1
  • 6
  • 23

0 Answers0