diff --git a/src/main/java/org/jenkinsci/plugins/googlelogin/GoogleOAuth2SecurityRealm.java b/src/main/java/org/jenkinsci/plugins/googlelogin/GoogleOAuth2SecurityRealm.java index 242f761..e8f2384 100644 --- a/src/main/java/org/jenkinsci/plugins/googlelogin/GoogleOAuth2SecurityRealm.java +++ b/src/main/java/org/jenkinsci/plugins/googlelogin/GoogleOAuth2SecurityRealm.java @@ -60,6 +60,7 @@ import org.kohsuke.stapler.HttpRedirect; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; import java.io.IOException; @@ -201,6 +202,11 @@ public void initialize(HttpRequest request) throws IOException { // logs this user in. UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(info.getEmail(), "", authorities); + + // prevent session fixation attack + Stapler.getCurrentRequest().getSession().invalidate(); + Stapler.getCurrentRequest().getSession(); + SecurityContextHolder.getContext().setAuthentication(token); // update the user profile. User u = User.get(token.getName());