X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fauth%2FHttpRequestCallbackHandler.java;h=bcc403fa996c4060cc4e3baa27158a40392cf298;hb=c79f5f2275dbbeb7407befc0188344ac16a87a80;hp=0486d7479daa1ddbc14925b61e966ab427e08fdb;hpb=86db10fcb2299ebf71d5599a80dc54444b26f893;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 0486d7479..bcc403fa9 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/HttpRequestCallbackHandler.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/HttpRequestCallbackHandler.java @@ -4,8 +4,10 @@ import java.io.IOException; import javax.security.auth.callback.Callback; import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.callback.LanguageCallback; import javax.security.auth.callback.UnsupportedCallbackException; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; /** * Callback handler populating {@link HttpRequestCallback}s with the provided @@ -13,17 +15,22 @@ import javax.servlet.http.HttpServletRequest; */ public class HttpRequestCallbackHandler implements CallbackHandler { final private HttpServletRequest request; + final private HttpServletResponse response; - public HttpRequestCallbackHandler(HttpServletRequest request) { + public HttpRequestCallbackHandler(HttpServletRequest request, HttpServletResponse response) { this.request = request; + this.response = response; } @Override - public void handle(Callback[] callbacks) throws IOException, - UnsupportedCallbackException { + public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { for (Callback callback : callbacks) - if (callback instanceof HttpRequestCallback) + if (callback instanceof HttpRequestCallback) { ((HttpRequestCallback) callback).setRequest(request); + ((HttpRequestCallback) callback).setResponse(response); + } else if (callback instanceof LanguageCallback) { + ((LanguageCallback) callback).setLocale(request.getLocale()); + } } }