]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/auth/HttpRequestCallbackHandler.java
Merge branch 'master' of https://github.com/argeo/argeo-commons.git
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / auth / HttpRequestCallbackHandler.java
index 0486d7479daa1ddbc14925b61e966ab427e08fdb..bcc403fa996c4060cc4e3baa27158a40392cf298 100644 (file)
@@ -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());
+                       }
        }
 
 }