From da8c997f5949744541312792a32609dd4554e3ab Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 31 Oct 2016 22:16:21 +0100 Subject: [PATCH] added primary principal as request attribute, see issue #877 --- .../main/java/sonia/scm/filter/SecurityFilter.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/scm-webapp/src/main/java/sonia/scm/filter/SecurityFilter.java b/scm-webapp/src/main/java/sonia/scm/filter/SecurityFilter.java index b469a6b89a..61dd73ea81 100644 --- a/scm-webapp/src/main/java/sonia/scm/filter/SecurityFilter.java +++ b/scm-webapp/src/main/java/sonia/scm/filter/SecurityFilter.java @@ -64,6 +64,9 @@ import javax.servlet.http.HttpServletResponse; public class SecurityFilter extends HttpFilter { + /** name of request attribute for the primary principal */ + private static final String ATTRIBUTE_REMOTE_USER = "principal"; + /** Field description */ public static final String URL_AUTHENTICATION = "/api/rest/authentication"; @@ -108,8 +111,14 @@ public class SecurityFilter extends HttpFilter { if (hasPermission(subject)) { + // add primary principal as request attribute + // see https://goo.gl/JRjNmf + User user = getUser(subject); + request.setAttribute(ATTRIBUTE_REMOTE_USER, user.getId()); + + // wrap servlet request to provide authentication informations chain.doFilter(new SecurityHttpServletRequestWrapper(request, - getUser(subject)), response); + user), response); } else if (subject.isAuthenticated() || subject.isRemembered()) {