import javax.security.auth.login.LoginContext;
import javax.security.auth.login.LoginException;
import javax.security.auth.login.LoginContext;
import javax.security.auth.login.LoginException;
-import org.argeo.cms.CmsException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.argeo.cms.CmsMsg;
import org.argeo.cms.CmsStyles;
import org.argeo.cms.CmsView;
import org.argeo.cms.CmsMsg;
import org.argeo.cms.CmsStyles;
import org.argeo.cms.CmsView;
import org.eclipse.swt.widgets.Text;
public class CmsLogin implements CmsStyles, CallbackHandler {
import org.eclipse.swt.widgets.Text;
public class CmsLogin implements CmsStyles, CallbackHandler {
+ private final static Log log = LogFactory.getLog(CmsLogin.class);
+
private Composite parent;
private Text usernameT, passwordT;
private Composite credentialsBlock;
private Composite parent;
private Text usernameT, passwordT;
private Composite credentialsBlock;
// save already entered values
String usernameStr = usernameT.getText();
char[] pwd = passwordT.getTextChars();
// save already entered values
String usernameStr = usernameT.getText();
char[] pwd = passwordT.getTextChars();
for (Control child : parent.getChildren())
child.dispose();
createContents(parent);
for (Control child : parent.getChildren())
child.dispose();
createContents(parent);
- protected void login() {
+ protected boolean login() {
Subject subject = cmsView.getSubject();
LoginContext loginContext;
try {
Subject subject = cmsView.getSubject();
LoginContext loginContext;
try {
new LoginContext(LOGIN_CONTEXT_ANONYMOUS, subject).logout();
loginContext = new LoginContext(LOGIN_CONTEXT_USER, subject, this);
loginContext.login();
new LoginContext(LOGIN_CONTEXT_ANONYMOUS, subject).logout();
loginContext = new LoginContext(LOGIN_CONTEXT_USER, subject, this);
loginContext.login();
- } catch (LoginException e1) {
- throw new CmsException("Cannot authenticate", e1);
+ } catch (LoginException e) {
+ // throw new CmsException("Cannot authenticate", e1);
+ log.error("Cannot login", e);
+ return false;
}
cmsView.authChange(loginContext);
}
cmsView.authChange(loginContext);
}
protected void logout() {
}
protected void logout() {
- protected void login() {
- super.login();
- closeShell();
+ protected boolean login() {
+ try {
+ return super.login();
+ } finally {
+ closeShell();
+ }