package org.argeo.security.equinox;
import java.util.Map;
-import java.util.Set;
import javax.security.auth.Subject;
import javax.security.auth.callback.Callback;
import org.argeo.security.SiteAuthenticationToken;
import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationManager;
-import org.springframework.security.BadCredentialsException;
import org.springframework.security.context.SecurityContextHolder;
import org.springframework.security.providers.jaas.SecurityContextLoginModule;
public boolean login() throws LoginException {
// try to retrieve Authentication from Subject
- Set<Authentication> auths = subject.getPrincipals(Authentication.class);
- if (auths.size() > 0)
- SecurityContextHolder.getContext().setAuthentication(
- auths.iterator().next());
+ // Set<Authentication> auths =
+ // subject.getPrincipals(Authentication.class);
+ // if (auths.size() > 0)
+ // SecurityContextHolder.getContext().setAuthentication(
+ // auths.iterator().next());
// thread already logged in
if (SecurityContextHolder.getContext().getAuthentication() != null)
callbackHandler.handle(new Callback[] { label, nameCallback,
passwordCallback });
} catch (Exception e) {
- LoginException le = new LoginException("Callback handling failed");
- le.initCause(e);
- throw le;
+ throw new RuntimeException("Unexpected exception when handling", e);
}
// Set user name and password
SiteAuthenticationToken credentials = new SiteAuthenticationToken(
username, password, null, workspace);
- try {
- Authentication authentication = authenticationManager
- .authenticate(credentials);
- registerAuthentication(authentication);
- boolean res = super.login();
- return res;
- } catch (BadCredentialsException bce) {
- throw bce;
- } catch (Exception e) {
- LoginException loginException = new LoginException(
- "Bad credentials");
- loginException.initCause(e);
- throw loginException;
- }
+ // try {
+ Authentication authentication = authenticationManager
+ .authenticate(credentials);
+ registerAuthentication(authentication);
+ boolean res = super.login();
+ return res;
+ // } catch (BadCredentialsException bce) {
+ // throw bce;
+ // } catch (LoginException e) {
+ // // LoginException loginException = new LoginException(
+ // // "Bad credentials");
+ // // loginException.initCause(e);
+ // throw e;
+ // }
}
@Override