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
;
11 * Callback handler populating {@link RemoteAuthCallback}s with the provided
12 * {@link HttpServletRequest}, and ignoring any other callback.
14 public class RemoteAuthCallbackHandler
implements CallbackHandler
{
15 final private RemoteAuthRequest request
;
16 final private RemoteAuthResponse response
;
17 final private RemoteAuthSession httpSession
;
19 public RemoteAuthCallbackHandler(RemoteAuthRequest request
, RemoteAuthResponse response
) {
20 this.request
= request
;
21 this.httpSession
= request
.getSession();
22 this.response
= response
;
25 public RemoteAuthCallbackHandler(RemoteAuthSession httpSession
) {
26 this.httpSession
= httpSession
;
32 public void handle(Callback
[] callbacks
) throws IOException
, UnsupportedCallbackException
{
33 for (Callback callback
: callbacks
)
34 if (callback
instanceof RemoteAuthCallback
) {
35 ((RemoteAuthCallback
) callback
).setRequest(request
);
36 ((RemoteAuthCallback
) callback
).setResponse(response
);
37 ((RemoteAuthCallback
) callback
).setHttpSession(httpSession
);
38 } else if (callback
instanceof LanguageCallback
) {
39 ((LanguageCallback
) callback
).setLocale(request
.getLocale());