X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fauth%2FHttpRequestCallbackHandler.java;h=df971e687f0c31bbd2eaf957a376be0c736a9c76;hb=b6e64316eb5472b68f4673cbda3f1e375defe8fe;hp=bcc403fa996c4060cc4e3baa27158a40392cf298;hpb=8d69d13b486f10aed4aeb37ed8617a908ce98f5f;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/auth/HttpRequestCallbackHandler.java b/org.argeo.cms/src/org/argeo/cms/auth/HttpRequestCallbackHandler.java index bcc403fa9..df971e687 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/HttpRequestCallbackHandler.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/HttpRequestCallbackHandler.java @@ -8,6 +8,7 @@ import javax.security.auth.callback.LanguageCallback; import javax.security.auth.callback.UnsupportedCallbackException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; /** * Callback handler populating {@link HttpRequestCallback}s with the provided @@ -16,18 +17,27 @@ import javax.servlet.http.HttpServletResponse; public class HttpRequestCallbackHandler implements CallbackHandler { final private HttpServletRequest request; final private HttpServletResponse response; + final private HttpSession httpSession; public HttpRequestCallbackHandler(HttpServletRequest request, HttpServletResponse response) { this.request = request; + this.httpSession = request.getSession(false); this.response = response; } + public HttpRequestCallbackHandler(HttpSession httpSession) { + this.httpSession = httpSession; + this.request = null; + this.response = null; + } + @Override public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { for (Callback callback : callbacks) if (callback instanceof HttpRequestCallback) { ((HttpRequestCallback) callback).setRequest(request); ((HttpRequestCallback) callback).setResponse(response); + ((HttpRequestCallback) callback).setHttpSession(httpSession); } else if (callback instanceof LanguageCallback) { ((LanguageCallback) callback).setLocale(request.getLocale()); }