view flys-client/src/main/java/de/intevation/flys/client/server/UserServiceImpl.java @ 3548:fed914a42a10

Merged revisions 5373,5377-5378 via svnmerge from file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-client/trunk ........ r5373 | ingo | 2012-09-07 11:21:25 +0200 (Fr, 07 Sep 2012) | 1 line Tagged 'flys-client' as 2.9 ........ r5377 | bricks | 2012-09-07 13:37:00 +0200 (Fr, 07 Sep 2012) | 2 lines Move RemoteServiceServlet to server package ........ r5378 | bricks | 2012-09-07 13:58:11 +0200 (Fr, 07 Sep 2012) | 4 lines Refactor UserServiceImpl getCurrentUser method Return the logged in user in getCurrentUser method. ........ flys-client/tags/2.9@5381 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 07 Sep 2012 12:03:15 +0000
parents 3a8884e06aaa
children 5e4d91304484
line wrap: on
line source
package de.intevation.flys.client.server;

import javax.xml.xpath.XPathConstants;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import org.apache.log4j.Logger;

import de.intevation.artifacts.common.ArtifactNamespaceContext;
import de.intevation.artifacts.common.utils.XMLUtils;

import de.intevation.artifacts.httpclient.exceptions.ConnectionException;

import de.intevation.flys.client.client.services.UserService;
import de.intevation.flys.client.server.auth.UserClient;
import de.intevation.flys.client.shared.exceptions.AuthenticationException;
import de.intevation.flys.client.shared.model.DefaultUser;
import de.intevation.flys.client.shared.model.User;

/**
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class UserServiceImpl
extends      RemoteServiceServlet
implements   UserService
{
    private static final Logger logger = Logger.getLogger(UserServiceImpl.class);


    public static final String ERROR_NO_SUCH_USER = "error_no_such_user";

    public User getCurrentUser(String locale)
    throws AuthenticationException
    {
        String url = getServletContext().getInitParameter("server-url");

        UserClient client = new UserClient(url);
        de.intevation.flys.client.server.auth.User loginuser = getUser();

        try {
            Element user = client.findUser(loginuser);

            if (user != null) {
                String uuid = user.getAttributeNS(
                        ArtifactNamespaceContext.NAMESPACE_URI, "uuid");
                String name = user.getAttributeNS(
                        ArtifactNamespaceContext.NAMESPACE_URI, "name");

                return new DefaultUser(uuid, name);
            }
        }
        catch (ConnectionException ce) {
            logger.error(ce, ce);
        }

        logger.error("No users existing in the server.");
        throw new AuthenticationException(ERROR_NO_SUCH_USER);
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org