X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2FCmsLogin.java;h=a9dd8255f4e572e772b65fbb317ddf4827ff3b9b;hb=72db84d77477228eb752e9e6bd6f8ea6edaa6421;hp=f470d9ba63a4fdbd43d5c71a879b52bd2e170512;hpb=a4bbcbed33a397bdc90f658a8067d5c709a89734;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/CmsLogin.java b/org.argeo.cms/src/org/argeo/cms/CmsLogin.java index f470d9ba6..a9dd8255f 100644 --- a/org.argeo.cms/src/org/argeo/cms/CmsLogin.java +++ b/org.argeo.cms/src/org/argeo/cms/CmsLogin.java @@ -1,219 +1,49 @@ package org.argeo.cms; -import java.util.Collections; -import java.util.List; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.springframework.security.authentication.AnonymousAuthenticationToken; +import org.argeo.cms.auth.ArgeoLoginContext; import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.User; -import org.springframework.security.core.userdetails.UserDetails; -/** Gateway for user login, can also generate the related UI. */ +/** + * Gateway for user login, can also generate the related UI. + * + * @deprecated Use {@link ArgeoLoginContext} instead + */ +@Deprecated public class CmsLogin { private final static Log log = LogFactory.getLog(CmsLogin.class); - private AuthenticationManager authenticationManager; - private String systemKey = "argeo"; - - protected void logInAsAnonymous() { - // TODO Better deal with anonymous authentication - try { - List anonAuthorities = Collections - .singletonList(new SimpleGrantedAuthority("ROLE_ANONYMOUS")); - UserDetails anonUser = new User("anonymous", "", true, true, true, - true, anonAuthorities); - AnonymousAuthenticationToken anonToken = new AnonymousAuthenticationToken( - systemKey, anonUser, anonAuthorities); - Authentication authentication = authenticationManager - .authenticate(anonToken); - SecurityContextHolder.getContext() - .setAuthentication(authentication); - } catch (Exception e) { - throw new CmsException("Cannot authenticate", e); - } - } - protected void logInWithPassword(String username, char[] password) { - UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken( - username, password); - Authentication authentication = authenticationManager - .authenticate(token); - SecurityContextHolder.getContext().setAuthentication(authentication); - if (log.isDebugEnabled()) - log.debug("Authenticated as " + authentication); + public CmsLogin() { + log.warn("org.argeo.cms.CmsLogin is deprecated and will be removed soon."); } - /* - * UI - */ - - // @Override - // public Control createUi(Composite parent, Node context) - // throws RepositoryException { - // Composite comp = new Composite(parent, SWT.NONE); - // comp.setLayout(new GridLayout(1, true)); - // comp.setData(RWT.CUSTOM_VARIANT, CmsStyles.CMS_LOGIN); - // refreshUi(comp); - // return comp; - // } - - // protected void refreshUi(Composite comp) { - // String username = SecurityContextHolder.getContext() - // .getAuthentication().getName(); - // if (username.equals("anonymous")) - // username = null; + // private AuthenticationManager authenticationManager; // - // for (Control child : comp.getChildren()) { - // child.dispose(); + // public void logInAsAnonymous() { + // Subject subject = new Subject(); + // final LoginContext loginContext; + // try { + // loginContext = new ArgeoLoginContext( + // KernelHeader.LOGIN_CONTEXT_ANONYMOUS, subject); + // loginContext.login(); + // } catch (LoginException e1) { + // throw new ArgeoException("Cannot authenticate anonymous", e1); // } - // - // Label l = new Label(comp, SWT.NONE); - // l.setData(RWT.CUSTOM_VARIANT, CmsStyles.CMS_LOGIN); - // l.setData(RWT.MARKUP_ENABLED, true); - // l.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, false)); - // if (username != null) { - // l.setText("" + username + ""); - // l.addMouseListener(new UserListener()); - // } else { - // l.setText("Log in"); - // l.addMouseListener(new LoginListener()); // } // - // comp.pack(); + // public void logInWithPassword(String username, char[] password) { + // NodeAuthenticationToken token = new NodeAuthenticationToken(username, + // password); + // Authentication authentication = authenticationManager + // .authenticate(token); + // SecurityContextHolder.getContext().setAuthentication(authentication); + // if (log.isDebugEnabled()) + // log.debug("Authenticated as " + authentication); // } - + // public void setAuthenticationManager( AuthenticationManager authenticationManager) { - this.authenticationManager = authenticationManager; + // this.authenticationManager = authenticationManager; } - - public void setSystemKey(String systemKey) { - this.systemKey = systemKey; - } - - // private class UserListener extends MouseAdapter { - // private static final long serialVersionUID = -3565359775509786183L; - // private Control source; - // private Shell dialog; - // - // @Override - // public void mouseDown(MouseEvent e) { - // source = ((Control) e.widget); - // if (dialog != null) { - // dialog.close(); - // dialog.dispose(); - // dialog = null; - // } else { - // dialog = createDialog(source); - // } - // } - // - // @SuppressWarnings("serial") - // protected Shell createDialog(Control source) { - // Shell dialog = new Shell(source.getDisplay(), SWT.NO_TRIM - // | SWT.BORDER | SWT.ON_TOP); - // dialog.setData(RWT.CUSTOM_VARIANT, CMS_USER_MENU); - // dialog.setLayout(new GridLayout(1, false)); - // - // final CmsSession cmsSession = (CmsSession) source.getDisplay() - // .getData(CmsSession.KEY); - // - // Label l = new Label(dialog, SWT.NONE); - // l.setData(RWT.CUSTOM_VARIANT, CMS_USER_MENU_ITEM); - // l.setText("Log out"); - // GridData lData = new GridData(SWT.FILL, SWT.FILL, true, false); - // lData.widthHint = 120; - // l.setLayoutData(lData); - // - // l.addMouseListener(new MouseAdapter() { - // public void mouseDown(MouseEvent e) { - // SecurityContextHolder.getContext().setAuthentication(null); - // UserListener.this.dialog.close(); - // UserListener.this.dialog.dispose(); - // cmsSession.authChange(); - // } - // }); - // - // dialog.pack(); - // dialog.layout(); - // dialog.setLocation(source.toDisplay( - // source.getSize().x - dialog.getSize().x, source.getSize().y)); - // dialog.open(); - // return dialog; - // } - // } - // - // private class LoginListener extends MouseAdapter { - // private static final long serialVersionUID = 677115566708451462L; - // private Control source; - // private Shell dialog; - // - // @Override - // public void mouseDown(MouseEvent e) { - // source = ((Control) e.widget); - // if (dialog != null) { - // dialog.close(); - // dialog.dispose(); - // dialog = null; - // } else { - // dialog = createDialog(source); - // } - // } - // - // @SuppressWarnings("serial") - // protected Shell createDialog(Control source) { - // Integer textWidth = 150; - // Shell dialog = new Shell(source.getDisplay(), SWT.NO_TRIM - // | SWT.BORDER | SWT.ON_TOP); - // dialog.setData(RWT.CUSTOM_VARIANT, CMS_LOGIN_DIALOG); - // dialog.setLayout(new GridLayout(2, false)); - // - // new Label(dialog, SWT.NONE).setText("Username"); - // final Text username = new Text(dialog, SWT.BORDER); - // username.setData(RWT.CUSTOM_VARIANT, CMS_LOGIN_DIALOG_USERNAME); - // GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false); - // gd.widthHint = textWidth; - // username.setLayoutData(gd); - // - // new Label(dialog, SWT.NONE).setText("Password"); - // final Text password = new Text(dialog, SWT.BORDER | SWT.PASSWORD); - // password.setData(RWT.CUSTOM_VARIANT, CMS_LOGIN_DIALOG_PASSWORD); - // gd = new GridData(SWT.FILL, SWT.FILL, true, false); - // gd.widthHint = textWidth; - // password.setLayoutData(gd); - // - // dialog.pack(); - // dialog.layout(); - // dialog.setLocation(source.toDisplay( - // source.getSize().x - dialog.getSize().x, source.getSize().y)); - // dialog.open(); - // - // // Listeners - // TraverseListener tl = new TraverseListener() { - // public void keyTraversed(TraverseEvent e) { - // if (e.detail == SWT.TRAVERSE_RETURN) - // login(username.getText(), password.getTextChars()); - // } - // }; - // username.addTraverseListener(tl); - // password.addTraverseListener(tl); - // return dialog; - // } - // - // protected void login(String username, char[] password) { - // CmsSession cmsSession = (CmsSession) source.getDisplay().getData( - // CmsSession.KEY); - // logInWithPassword(username, password); - // dialog.close(); - // dialog.dispose(); - // refreshUi(source.getParent()); - // cmsSession.authChange(); - // } - // - // } }