- Authorization authorization = (Authorization) sharedState
- .get(AuthConstants.AUTHORIZATION_KEY);
- if (authorization == null)
- if (!isAnonymous) {
- // ask for username and password
- NameCallback nameCallback = new NameCallback("User");
- PasswordCallback passwordCallback = new PasswordCallback(
- "Password", false);
+ Authorization authorization = null;
+ if (isAnonymous) {
+ authorization = userAdmin.getAuthorization(null);
+ } else {
+ HttpRequestCallback httpCallback = new HttpRequestCallback();
+ // ask for username and password
+ NameCallback nameCallback = new NameCallback("User");
+ PasswordCallback passwordCallback = new PasswordCallback(
+ "Password", false);
+ LanguageCallback langCallback = new LanguageCallback();
+ try {
+ callbackHandler.handle(new Callback[] { httpCallback,
+ nameCallback, passwordCallback, langCallback });
+ } catch (IOException e) {
+ throw new LoginException("Cannot handle http callback: "
+ + e.getMessage());
+ } catch (ThreadDeath e) {
+ throw new ThreadDeathLoginException(
+ "Callbackhandler thread died", e);
+ } catch (UnsupportedCallbackException e) {
+ return false;
+ }
+ request = httpCallback.getRequest();
+ if (request != null) {
+ authorization = (Authorization) request
+ .getAttribute(HttpContext.AUTHORIZATION);
+ if (authorization == null)
+ authorization = (Authorization) request.getSession()
+ .getAttribute(HttpContext.AUTHORIZATION);
+ }