1 package org
.argeo
.cms
.auth
;
3 import java
.io
.IOException
;
5 import javax
.security
.auth
.callback
.Callback
;
6 import javax
.security
.auth
.callback
.CallbackHandler
;
7 import javax
.security
.auth
.callback
.LanguageCallback
;
8 import javax
.security
.auth
.callback
.UnsupportedCallbackException
;
9 import javax
.servlet
.http
.HttpServletRequest
;
10 import javax
.servlet
.http
.HttpServletResponse
;
11 import javax
.servlet
.http
.HttpSession
;
14 * Callback handler populating {@link HttpRequestCallback}s with the provided
15 * {@link HttpServletRequest}, and ignoring any other callback.
17 public class HttpRequestCallbackHandler
implements CallbackHandler
{
18 final private HttpServletRequest request
;
19 final private HttpServletResponse response
;
20 final private HttpSession httpSession
;
22 public HttpRequestCallbackHandler(HttpServletRequest request
, HttpServletResponse response
) {
23 this.request
= request
;
24 this.httpSession
= request
.getSession(false);
25 this.response
= response
;
28 public HttpRequestCallbackHandler(HttpSession httpSession
) {
29 this.httpSession
= httpSession
;
35 public void handle(Callback
[] callbacks
) throws IOException
, UnsupportedCallbackException
{
36 for (Callback callback
: callbacks
)
37 if (callback
instanceof HttpRequestCallback
) {
38 ((HttpRequestCallback
) callback
).setRequest(request
);
39 ((HttpRequestCallback
) callback
).setResponse(response
);
40 ((HttpRequestCallback
) callback
).setHttpSession(httpSession
);
41 } else if (callback
instanceof LanguageCallback
) {
42 ((LanguageCallback
) callback
).setLocale(request
.getLocale());