Example usage for org.w3c.dom Element getNodeName

List of usage examples for org.w3c.dom Element getNodeName

Introduction

In this page you can find the example usage for org.w3c.dom Element getNodeName.

Prototype

public String getNodeName();

Source Link

Document

The name of this node, depending on its type; see the table above.

Usage

From source file:com.enonic.vertical.engine.handlers.MenuHandler.java

/**
 * Builds a menu tree, typically used to present the menu in the menu ;)
 *
 * @param user           The current user
 * @param getterSettings If given - build tree from these settings
 * @return A DOM document containing the menu tree
 *///from   ww  w .  j  a v a 2s .c  o m
public Document getMenusForAdmin(User user, MenuGetterSettings getterSettings) {

    List<Integer> paramValues = new ArrayList<Integer>(2);
    StringBuffer sqlMenus = new StringBuffer(MENU_SELECT);

    if (getterSettings.hasMenuKeys()) {
        int[] menuKeys = getterSettings.getMenuKeys();
        sqlMenus.append(" WHERE ");
        sqlMenus.append("men_lKey IN (");
        for (int i = 0; i < menuKeys.length; i++) {
            if (i > 0) {
                sqlMenus.append(',');
            }
            sqlMenus.append(menuKeys[i]);
        }
        sqlMenus.append(')');
    }

    // Selekterer bare menyer som brukeren har create eller administrate p
    if (user != null) {
        MenuCriteria criteria = getterSettings.getMenuCriteria();
        getSecurityHandler().appendMenuSQL(user, sqlMenus, criteria);
    }

    Hashtable<String, Element> hashtable_menus = new Hashtable<String, Element>();

    Connection con = null;
    PreparedStatement statement = null;
    ResultSet resultSet = null;

    Document doc = XMLTool.createDocument("menus");
    try {
        con = getConnection();

        statement = con.prepareStatement(sqlMenus.toString());
        JDBCUtil.addValuesToPreparedStatement(statement, paramValues);

        try {

            // Frst selekterer vi ut menus...
            resultSet = statement.executeQuery();

            while (resultSet.next()) {

                int curMenuKey = resultSet.getInt("men_lKey");

                Element element_Menu = getMenuData(doc.getDocumentElement(), curMenuKey);
                Element accessRights = XMLTool.createElement(doc, element_Menu, "accessrights");
                getSecurityHandler().appendAccessRightsOnDefaultMenuItem(user, curMenuKey, accessRights, true);

                XMLTool.createElement(doc, element_Menu, "menuitems");
                // Lagrer referansen til kategori-elementet for raskt oppslag til senere bruk
                hashtable_menus.put(String.valueOf(curMenuKey), element_Menu);
            }
        } finally {
            close(resultSet);
            resultSet = null;
            close(statement);
            statement = null;
        }

        MenuItemCriteria menuItemCriteria = getterSettings.getMenuItemCriteria();
        if (!menuItemCriteria.getDisableMenuItemLoadingForUnspecified() || menuItemCriteria.getMenuKey() >= 0) {
            // Legger s til menuitems til menyene
            Hashtable<String, Element> hashtable_MenuItems = appendMenuItemsBySettings(user, doc,
                    hashtable_menus, getterSettings);

            // Hvis brukeren bare vil ha et fullt tree fra gitte menuItemKey,
            // s m vi fjerne alle ssken-noder til foreldre-nodene
            if (getterSettings.hasOnlyChildrenFromThisMenuItemKey()) {
                Element curMenuItem = hashtable_MenuItems
                        .get(getterSettings.getMenuItemKeyAsInteger().toString());

                while (curMenuItem != null) {

                    XMLTool.removeAllSiblings(curMenuItem);

                    // Move to first parent node (menuitems)
                    curMenuItem = (Element) curMenuItem.getParentNode();
                    // Exit loop if we have reached the top
                    if ("menus".equals(curMenuItem.getNodeName())) {
                        break;
                    }

                    // Move to next parent node (menuitem/menu)
                    if (curMenuItem != null) {
                        curMenuItem = (Element) curMenuItem.getParentNode();
                    }
                }
            }

            if (getterSettings.hasTagParentsOfThisMenuItem()) {

                Element menuItem = hashtable_MenuItems
                        .get(getterSettings.getTagParentsOfThisMenuItemKeyAsInteger().toString());
                Node parent = menuItem.getParentNode();
                String tagName = getterSettings.getTagParentsOfThisMenuItemTagName();
                String tagValue = getterSettings.getTagParentsOfThisMenuItemTagValue();
                while (parent != null) {
                    if (parent instanceof Element) {
                        ((Element) parent).setAttribute(tagName, tagValue);
                    }
                    parent = parent.getParentNode();
                }
            }
        }

        if (!getterSettings.hasMenuKeys()) {
            String sqlMenuItems;
            sqlMenuItems = "SELECT DISTINCT mei_men_lKey FROM tMenuItem JOIN tMenu on tMenuItem.mei_men_lKey = tMenu.men_lKey ";
            sqlMenuItems = getSecurityHandler().appendMenuItemSQL(user, sqlMenuItems, menuItemCriteria);

            statement = con.prepareStatement(sqlMenuItems);
            resultSet = statement.executeQuery();
            while (resultSet.next()) {
                String menuKey = resultSet.getString("mei_men_lKey");
                if (!hashtable_menus.containsKey(menuKey)) {
                    Element menuElement = getMenuData(doc.getDocumentElement(), Integer.parseInt(menuKey));

                    hashtable_menus.put(menuKey, menuElement);
                }
            }
        }
    } catch (SQLException sqle) {
        String message = "Failed to get the menus: %t";
        VerticalEngineLogger.error(this.getClass(), 0, message, sqle);
        doc = XMLTool.createDocument("categories");
    } finally {
        close(resultSet);
        close(statement);
        close(con);
    }

    return doc;
}

From source file:com.portfolio.rest.RestServicePortfolio.java

@Path("/credential/login")
@POST// w  w w . j a  v a 2 s .c  o  m
@Produces(MediaType.APPLICATION_XML)
@Consumes(MediaType.APPLICATION_XML)
public Response postCredentialFromXml(String xmlCredential, @CookieParam("user") String user,
        @CookieParam("credential") String token, @QueryParam("group") int groupId, @Context ServletConfig sc,
        @Context HttpServletRequest httpServletRequest) {
    HttpSession session = httpServletRequest.getSession(true);
    initService(httpServletRequest);
    KEvent event = new KEvent();
    event.eventType = KEvent.EventType.LOGIN;
    event.inputData = xmlCredential;
    String retVal = "";

    try {
        Document doc = DomUtils.xmlString2Document(xmlCredential, new StringBuffer());
        Element credentialElement = doc.getDocumentElement();
        String login = "";
        String password = "";
        String substit = null;
        if (credentialElement.getNodeName().equals("credential")) {
            String[] templogin = DomUtils.getInnerXml(doc.getElementsByTagName("login").item(0)).split(":");
            password = DomUtils.getInnerXml(doc.getElementsByTagName("password").item(0));

            if (templogin.length > 1)
                substit = templogin[1];
            login = templogin[0];
        }

        int dummy = 0;
        String[] resultCredential = dataProvider.postCredentialFromXml(dummy, login, password, substit);
        // 0: xml de retour
        // 1,2: username, uid
        // 3,4: substitute name, substitute id
        if (resultCredential == null) {
            event.status = 403;
            retVal = "invalid credential";
        } else if (!"0".equals(resultCredential[2])) {
            //            String tokenID = resultCredential[2];

            if (substit != null && !"0".equals(resultCredential[4])) {
                int uid = Integer.parseInt(resultCredential[2]);
                int subid = Integer.parseInt(resultCredential[4]);

                session.setAttribute("user", resultCredential[3]);
                session.setAttribute("uid", subid);
                session.setAttribute("subuser", resultCredential[1]);
                session.setAttribute("subuid", uid);
            } else {
                String login1 = resultCredential[1];
                int userId = Integer.parseInt(resultCredential[2]);

                session.setAttribute("user", login1);
                session.setAttribute("uid", userId);
                session.setAttribute("subuser", "");
                session.setAttribute("subuid", 0);
            }
            //            if(tokenID==null) throw new RestWebApplicationException(Status.FORBIDDEN, "invalid credential or invalid group member");
            //            else if(tokenID.length()==0) throw new RestWebApplicationException(Status.FORBIDDEN, "invalid credential or invalid group member");

            event.status = 200;
            retVal = resultCredential[0];
        }
        eventbus.processEvent(event);

        return Response.status(event.status).entity(retVal).type(event.mediaType).build();
    } catch (RestWebApplicationException ex) {
        ex.printStackTrace();
        logger.error(ex.getLocalizedMessage());
        logRestRequest(httpServletRequest, null, "invalid Credential or invalid group member",
                Status.FORBIDDEN.getStatusCode());
        throw new RestWebApplicationException(Status.FORBIDDEN, ex.getMessage());
    } catch (Exception ex) {
        logger.error(ex.getMessage());
        ex.printStackTrace();
        logRestRequest(httpServletRequest, xmlCredential,
                ex.getMessage() + "\n\n" + javaUtils.getCompleteStackTrace(ex),
                Status.INTERNAL_SERVER_ERROR.getStatusCode());
        throw new RestWebApplicationException(Status.INTERNAL_SERVER_ERROR, ex.getMessage());
    } finally {
        dataProvider.disconnect();
    }
}

From source file:com.clican.pluto.fsm.spring.parser.AbstractStateParser.java

@SuppressWarnings({ "rawtypes", "unchecked" })
public BeanDefinition parse(Element element, ParserContext parserContext) {
    BeanDefinitionRegistry bdr = parserContext.getRegistry();
    RootBeanDefinition beanDef = new RootBeanDefinition();
    beanDef.setDestroyMethodName("destroy");
    beanDef.setAbstract(false);//w  w  w  .  ja v a  2  s. co m
    beanDef.setBeanClass(getStateClass(element));
    beanDef.setLazyInit(false);
    beanDef.setAutowireMode(Autowire.BY_NAME.value());
    String name = element.getAttribute("name");
    if (bdr.containsBeanDefinition(name)) {
        throw new RuntimeException("name[" + name + "]is defined duplicated");
    }
    bdr.registerBeanDefinition(name, beanDef);
    beanDef.getPropertyValues().addPropertyValue("name", name);
    String value = element.getAttribute("value");
    beanDef.getPropertyValues().addPropertyValue("value", value);

    String propagation = element.getAttribute("propagation");
    beanDef.getPropertyValues().addPropertyValue("propagation", propagation);
    String nextStates = element.getAttribute("nextStates");
    if (StringUtils.isNotEmpty(nextStates)) {
        List nextStateList = new ManagedList();
        for (String nextState : nextStates.split(",")) {
            nextStateList.add(new RuntimeBeanReference(nextState.trim()));
        }
        beanDef.getPropertyValues().addPropertyValue("nextStates", nextStateList);
    }

    String previousStates = element.getAttribute("previousStates");
    if (StringUtils.isNotEmpty(previousStates)) {
        List previousStateList = new ManagedList();
        for (String previousState : previousStates.split(",")) {
            previousStateList.add(new RuntimeBeanReference(previousState.trim()));
        }
        beanDef.getPropertyValues().addPropertyValue("previousStates", previousStateList);
    }

    NodeList nodeList = element.getChildNodes();
    Map nextCondStates = new ManagedMap();
    Map params = new ManagedMap();
    List stateListeners = new ManagedList();
    List taskListeners = new ManagedList();
    Map timeoutListeners = new ManagedMap();
    for (int i = 0; i < nodeList.getLength(); i++) {
        Node node = nodeList.item(i);
        if (node.getNodeType() == Node.ELEMENT_NODE) {
            String localName = node.getLocalName();
            Element e = (Element) node;
            if ("nextCondStates".equals(localName)) {
                String expr = e.getAttribute("expr");
                nextStates = e.getAttribute("nextStates");
                List nextStateList = new ManagedList();
                if (StringUtils.isNotEmpty(nextStates)) {
                    for (String nextState : nextStates.split(",")) {
                        nextStateList.add(new RuntimeBeanReference(nextState.trim()));
                    }
                }
                nextCondStates.put(expr, nextStateList);
            } else if ("param".equals(localName)) {
                String paramName = e.getAttribute("name");
                String paramValue = e.getAttribute("value");
                params.put(paramName, paramValue);
            } else if ("stateListener".equals(localName) || "timeoutListener".equals(localName)
                    || "taskListener".equals(localName)) {
                String clazz = e.getAttribute("clazz");
                String listener = e.getAttribute("listener");
                Object obj;
                if (StringUtils.isNotEmpty(clazz)) {
                    try {
                        RootBeanDefinition bean = new RootBeanDefinition();
                        bean.setAbstract(false);
                        bean.setBeanClass(Class.forName(clazz));
                        bean.setLazyInit(false);
                        bean.setAutowireMode(Autowire.BY_NAME.value());
                        if ("timeoutListener".equals(localName)) {
                            String timeoutName = e.getAttribute("name");
                            String startTime = e.getAttribute("startTime");
                            String dueTime = e.getAttribute("dueTime");
                            String repeatTime = e.getAttribute("repeatTime");
                            String repeatDuration = e.getAttribute("repeatDuration");
                            String businessCalendarName = e.getAttribute("businessCalendarName");
                            bean.getPropertyValues().addPropertyValue("name", timeoutName);
                            bean.getPropertyValues().addPropertyValue("startTime", startTime);
                            bean.getPropertyValues().addPropertyValue("dueTime", dueTime);
                            bean.getPropertyValues().addPropertyValue("repeatTime", repeatTime);
                            bean.getPropertyValues().addPropertyValue("repeatDuration", repeatDuration);
                            bean.getPropertyValues().addPropertyValue("businessCalendarName",
                                    businessCalendarName);
                        }
                        NodeList nodeList2 = element.getChildNodes();
                        Map params2 = new ManagedMap();
                        for (int j = 0; j < nodeList2.getLength(); j++) {
                            Node node2 = nodeList2.item(j);
                            if (node2.getNodeType() == Node.ELEMENT_NODE) {
                                String localName2 = node2.getLocalName();
                                if ("param".equals(localName2)) {
                                    String paramName = ((Element) node2).getAttribute("name");
                                    String paramValue = ((Element) node2).getAttribute("value");
                                    params2.put(paramName, paramValue);
                                }
                            }
                        }
                        obj = bean;
                    } catch (Exception ex) {
                        throw new RuntimeException(ex);
                    }
                } else if (StringUtils.isNotEmpty(listener)) {
                    obj = new RuntimeBeanReference(listener.trim());
                } else {
                    throw new RuntimeException("There must be clazz or listener parameter setting");
                }
                if ("stateListener".equals(localName)) {
                    stateListeners.add(obj);
                } else if ("taskListeners".equals(localName)) {
                    taskListeners.add(obj);
                } else {
                    String timeoutName = e.getAttribute("name");
                    timeoutListeners.put(timeoutName, obj);
                }
            }
        }
    }
    beanDef.getPropertyValues().addPropertyValue("nextCondStates", nextCondStates);
    beanDef.getPropertyValues().addPropertyValue("params", params);
    beanDef.getPropertyValues().addPropertyValue("stateListeners", stateListeners);
    if (element.getNodeName().equals("task")) {
        beanDef.getPropertyValues().addPropertyValue("taskListeners", taskListeners);
    }
    beanDef.getPropertyValues().addPropertyValue("timeoutListeners", timeoutListeners);

    customiseBeanDefinition(beanDef, element, parserContext);
    return beanDef;
}

From source file:com.portfolio.data.provider.MysqlAdminProvider.java

@Override
public String[] postCredentialFromXml(String xml, Integer userId) throws ServletException, IOException {

    try {//  w w  w  .j  av a  2s .c o m
        String[] returnValue = new String[4];
        Document doc = DomUtils.xmlString2Document(xml, new StringBuffer());
        Element credentialElement = doc.getDocumentElement();

        //On verifie le bon format
        if (credentialElement.getNodeName().equals("credential")) {
            String login = DomUtils.getInnerXml(doc.getElementsByTagName("login").item(0));
            String password = DomUtils.getInnerXml(doc.getElementsByTagName("password").item(0));

            String[] credentialInfos = credential.doPost(login, password);

            if (credentialInfos != null) {
                returnValue[0] = credentialInfos[0];
                returnValue[1] = credentialInfos[1];
                returnValue[2] = "";
                returnValue[3] = credentialInfos[2];

                String login1 = credentialInfos[0];
                ResultSet res = getMySqlUserByLogin(login1);
                returnValue[2] += "<credential>";
                returnValue[2] += DomUtils.getXmlElementOutput("useridentifier", res.getString("login"));
                returnValue[2] += DomUtils.getXmlElementOutput("token", res.getString("token"));
                returnValue[2] += DomUtils.getXmlElementOutput("firstname", res.getString("display_firstname"));
                returnValue[2] += DomUtils.getXmlElementOutput("lastname", res.getString("display_lastname"));
                if (res.getInt("is_admin") == 1)
                    returnValue[2] += DomUtils.getXmlElementOutput("admin", res.getString("is_admin"));
                returnValue[2] += DomUtils.getXmlElementOutput("email", res.getString("email"));
                returnValue[2] += "</credential>";
            }
            return returnValue;
        } else
            return null;
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

From source file:com.portfolio.data.provider.MysqlAdminProvider.java

@Override
public Object postGroup(String in, int userId) throws Exception {
    if (!credential.isAdmin(userId))
        throw new RestWebApplicationException(Status.FORBIDDEN, "No admin right");

    String result = null;//from  w  ww.  j a  va 2 s. com
    Integer grid = 0;
    int owner = 0;
    String label = null;

    //On prepare les requetes SQL
    PreparedStatement stInsert;
    String sqlInsert;

    //On recupere le body
    Document doc = DomUtils.xmlString2Document(in, new StringBuffer());
    Element etu = doc.getDocumentElement();

    //On verifie le bon format
    if (etu.getNodeName().equals("group")) {
        //On recupere les attributs
        try {
            if (etu.getAttributes().getNamedItem("grid") != null) {
                grid = Integer.parseInt(etu.getAttributes().getNamedItem("grid").getNodeValue());
            } else {
                grid = null;
            }
        } catch (Exception ex) {
        }

        try {
            if (etu.getAttributes().getNamedItem("owner") != null) {
                owner = Integer.parseInt(etu.getAttributes().getNamedItem("owner").getNodeValue());
            }
        } catch (Exception ex) {
        }

        try {
            if (etu.getAttributes().getNamedItem("label") != null) {
                label = etu.getAttributes().getNamedItem("label").getNodeValue();
            }
        } catch (Exception ex) {
        }

    } else {
        result = "Erreur lors de la recuperation des attributs du groupe dans le XML";
    }

    //On ajoute le groupe dans la base de donnees
    sqlInsert = "REPLACE INTO group_info(grid, owner, label) VALUES (?, ?, ?)";
    if (dbserveur.equals("oracle")) {
        sqlInsert = "MERGE INTO group_info d using (SELECT ? grid,? owner,? label from dual) s ON (1=2) WHEN NOT MATCHED THEN INSERT (d.grid, d.owner, d.label) values (s.grid, s.owner, s.label)";
    }
    stInsert = connection.prepareStatement(sqlInsert);
    stInsert.setInt(1, grid);
    stInsert.setInt(2, owner);
    stInsert.setString(3, label);
    stInsert.executeUpdate();

    //On renvoie le body pour qu'il soit stock dans le log
    result = "<group ";
    result += DomUtils.getXmlAttributeOutputInt("grid", grid) + " ";
    result += DomUtils.getXmlAttributeOutputInt("owner", owner) + " ";
    result += DomUtils.getXmlAttributeOutput("label", label) + " ";
    result += ">";
    result += "</group>";

    return result;
}

From source file:com.portfolio.data.provider.MysqlAdminProvider.java

@Override
public String postAddNodeType(int userId, Integer type, Integer nodeid, Integer parentid, Integer instance,
        String data) {/*from ww w  .j av  a 2  s  .c  o m*/
    if (!credential.isAdmin(userId))
        throw new RestWebApplicationException(Status.FORBIDDEN, "No admin right");

    /**
     * Format que l'on reoit:
     * <asm*>
     *   <asmResource xsi_type='nodeRes'>{node_data}</asmResource>
     *   <asmResource xsi_type='context'>{node_data}</asmResource>
     *   <asmResource xsi_type='*'>{node_data}</asmResource>
     * </asm*>
     */

    String sql = "";
    PreparedStatement st;
    Integer output = 0;
    Integer parentId = 0;

    String asmtype = "";
    String xsitype = "";
    try {
        /// Prpare les donnes pour les requtes
        // Parse
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        Document document = documentBuilder.parse(new ByteArrayInputStream(data.getBytes("UTF-8")));

        // Traite le noeud racine des donnes, retourne l'identifiant du noeud racine
        Element nodeData = document.getDocumentElement();
        asmtype = nodeData.getNodeName();

        connection.setAutoCommit(true);

        // Utilise parentid si on rattache un autre groupe de noeud en dessous d'un noeud existant
        sql = "INSERT INTO definition_type(def_id,asm_type,parent_node,instance_rule) " + "VALUE(?,?,?,?)";
        st = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
        if (dbserveur.equals("oracle")) {
            st = connection.prepareStatement(sql, new String[] { "node_id" });
        }
        st.setInt(1, type);
        st.setString(2, asmtype);

        if (parentid == null)
            st.setNull(3, Types.BIGINT);
        else
            st.setInt(3, parentid);

        if (instance == null)
            st.setNull(4, Types.BIGINT);
        else
            st.setInt(4, instance);

        output = st.executeUpdate();
        ResultSet key = st.getGeneratedKeys();
        // On rcupre l'identifiant du noeud 'racine' des donnes ajouts
        if (key.next())
            parentId = key.getInt(1);
        st.close();

        // Soit 2 ou 3 resources
        asmtype = "asmResource";
        NodeList resources = document.getElementsByTagName("asmResource");
        sql = "INSERT INTO definition_type(def_id,asm_type,xsi_type,parent_node,node_data,instance_rule) "
                + "VALUE(?,?,?,?,?,?)";
        st = connection.prepareStatement(sql);
        st.setInt(1, type);
        st.setString(2, asmtype);
        st.setInt(4, parentId);

        for (int i = 0; i < resources.getLength(); ++i) {
            Element resource = (Element) resources.item(i);
            xsitype = resource.getAttribute("xsi_type");
            String resContent = DomUtils.getInnerXml(resource);

            st.setString(3, xsitype);
            st.setString(5, resContent);

            if (instance == null)
                st.setNull(6, Types.BIGINT);
            else
                st.setInt(6, instance);

            // On ajoute les donnes des ressources restante
            output = st.executeUpdate();

        }
        st.close();
    } catch (Exception e) {
        try {
            connection.rollback();
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
        e.printStackTrace();
    } finally {
        try {
            connection.setAutoCommit(true);
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    return output.toString();
}

From source file:com.portfolio.data.provider.MysqlAdminProvider.java

@Override
public Object postUser(String in, int userId) throws Exception {
    if (!credential.isAdmin(userId))
        throw new RestWebApplicationException(Status.FORBIDDEN, "No admin right");

    String result = null;//from  w  w w . jav  a 2  s  . c o m
    String login = null;
    String firstname = null;
    String lastname = null;
    String label = null;
    String password = null;
    String active = "1";
    Integer uuid = 0;
    Integer newId = 0;

    //On prepare les requetes SQL
    PreparedStatement stInsert;
    String sqlInsert;

    //On recupere le body
    Document doc = DomUtils.xmlString2Document(in, new StringBuffer());
    Element etu = doc.getDocumentElement();

    //On verifie le bon format
    if (etu.getNodeName().equals("user")) {
        //On recupere les attributs
        try {
            if (etu.getAttributes().getNamedItem("uid") != null) {
                login = etu.getAttributes().getNamedItem("uid").getNodeValue();

                if (getMysqlUserUid(login) != null) {
                    uuid = Integer.parseInt(getMysqlUserUid(login));
                }
            }
        } catch (Exception ex) {
        }

        try {
            if (etu.getAttributes().getNamedItem("firstname") != null) {
                firstname = etu.getAttributes().getNamedItem("firstname").getNodeValue();
            }
        } catch (Exception ex) {
        }

        try {
            if (etu.getAttributes().getNamedItem("lastname") != null) {
                lastname = etu.getAttributes().getNamedItem("lastname").getNodeValue();
            }
        } catch (Exception ex) {
        }

        try {
            if (etu.getAttributes().getNamedItem("label") != null) {
                label = etu.getAttributes().getNamedItem("label").getNodeValue();
            }
        } catch (Exception ex) {
        }

        try {
            if (etu.getAttributes().getNamedItem("password") != null) {
                password = etu.getAttributes().getNamedItem("password").getNodeValue();
            }
        } catch (Exception ex) {
        }
        try {
            if (etu.getAttributes().getNamedItem("active") != null) {
                active = etu.getAttributes().getNamedItem("active").getNodeValue();
            }
        } catch (Exception ex) {
        }

    } else {
        result = "Erreur lors de la recuperation des attributs de l'utilisateur dans le XML";
    }

    //On ajoute l'utilisateur dans la base de donnees
    if (etu.getAttributes().getNamedItem("firstname") != null
            && etu.getAttributes().getNamedItem("lastname") != null
            && etu.getAttributes().getNamedItem("label") == null) {

        sqlInsert = "REPLACE INTO credential(userid, login, display_firstname, display_lastname, password, active) VALUES (?, ?, ?, ?, UNHEX(SHA1(?)),?)";
        stInsert = connection.prepareStatement(sqlInsert, Statement.RETURN_GENERATED_KEYS);
        if (dbserveur.equals("oracle")) {
            sqlInsert = "MERGE INTO credential d USING (SELECT ? userid,? login,? display_firstname,? display_lastname,crypt(?) password,? active FROM DUAL) s ON (d.userid=s.userid) WHEN MATCHED THEN UPDATE SET d.login=s.login, d.display_firstname = s.display_firstname, d.display_lastname = s.display_lastname, d.password = s.password, d.active = s.active WHEN NOT MATCHED THEN INSERT (d.userid, d.login, d.display_firstname, d.display_lastname, d.password, d.active) VALUES (s.userid, s.login, s.display_firstname, s.display_lastname, s.password, s.active)";
            stInsert = connection.prepareStatement(sqlInsert, new String[] { "userid" });
        }
        stInsert.setInt(1, uuid);
        stInsert.setString(2, login);
        stInsert.setString(3, firstname);
        stInsert.setString(4, lastname);
        stInsert.setString(5, password);
        stInsert.setString(6, active);
        stInsert.executeUpdate();
    } else {
        sqlInsert = "REPLACE INTO credential(userid, login, display_firstname, display_lastname, password, active) VALUES (?, ?, ?, ?, UNHEX(SHA1(?)),?)";
        stInsert = connection.prepareStatement(sqlInsert, Statement.RETURN_GENERATED_KEYS);
        if (dbserveur.equals("oracle")) {
            sqlInsert = "MERGE INTO credential d USING (SELECT ? userid,? login,? display_firstname,? display_lastname,crypt(?) password,? active FROM DUAL) s ON (d.userid=s.userid) WHEN MATCHED THEN UPDATE SET d.login=s.login, d.display_firstname = s.display_firstname, d.display_lastname = s.display_lastname, d.password = s.password, d.active = s.active WHEN NOT MATCHED THEN INSERT (d.userid, d.login, d.display_firstname, d.display_lastname, d.password, d.active) VALUES (s.userid, s.login, s.display_firstname, s.display_lastname, s.password, s.active)";
            stInsert = connection.prepareStatement(sqlInsert, new String[] { "userid" });
        }
        stInsert.setInt(1, uuid);
        stInsert.setString(2, login);
        stInsert.setString(3, " ");
        stInsert.setString(4, label);
        stInsert.setString(5, password);
        stInsert.setString(6, active);
        stInsert.executeUpdate();
    }

    ResultSet rs = stInsert.getGeneratedKeys();
    if (rs.next()) {
        newId = rs.getInt(1);
    }

    //On renvoie le body pour qu'il soit stock dans le log
    result = "<user ";
    result += DomUtils.getXmlAttributeOutput("uid", login) + " ";
    result += DomUtils.getXmlAttributeOutput("firstname", firstname) + " ";
    result += DomUtils.getXmlAttributeOutput("lastname", lastname) + " ";
    result += DomUtils.getXmlAttributeOutput("label", label) + " ";
    result += DomUtils.getXmlAttributeOutput("password", password) + " ";
    result += DomUtils.getXmlAttributeOutputInt("uuid", newId) + " ";
    result += ">";
    result += "</user>";

    return result;
}

From source file:com.portfolio.data.provider.MysqlAdminProvider.java

@Override
public Object postModels(MimeType mimeType, String xmlModel, int userId) throws Exception {
    // TODO Auto-generated method stub
    if (!credential.isAdmin(userId))
        throw new RestWebApplicationException(Status.FORBIDDEN, "No admin right");

    String pm_label = null;//ww w .  j  a va2  s . com
    String portfolio_id = null;
    Integer id = 0;
    String result = "";

    //On prepare les requetes SQL
    PreparedStatement stInsert;
    String sqlInsert;

    //On recupere le body
    Document doc;

    doc = DomUtils.xmlString2Document(xmlModel, new StringBuffer());
    Element users = doc.getDocumentElement();

    NodeList children = null;

    children = users.getChildNodes();
    // On parcourt une premire fois les enfants pour rcuperer la liste  crire en base

    //On verifie le bon format
    if (users.getNodeName().equals("models")) {
        for (int i = 0; i < children.getLength(); i++) {
            if (children.item(i).getNodeName().equals("model")) {
                NodeList children2 = null;
                children2 = children.item(i).getChildNodes();
                for (int y = 0; y < children2.getLength(); y++) {

                    if (children2.item(y).getNodeName().equals("label")) {
                        pm_label = DomUtils.getInnerXml(children2.item(y));
                    }
                    if (children2.item(y).getNodeName().equals("treeid")) {
                        portfolio_id = DomUtils.getInnerXml(children2.item(y));
                    }

                    //requete sql  refaire
                }
            }
        }
    } else {
        result = "Erreur lors de la recuperation des attributs de l'utilisateur dans le XML";
    }

    return result;

}

From source file:com.portfolio.data.provider.MysqlAdminProvider.java

@Override
public Object putRole(String xmlRole, int userId, int roleId) throws Exception {
    // TODO Auto-generated method stub

    if (!credential.isAdmin(userId))
        throw new RestWebApplicationException(Status.FORBIDDEN, "No admin right");

    String result = null;//w  w w.j  a  v a2s .  co  m
    String username = null;
    String password = null;
    String firstname = null;
    String lastname = null;
    String email = null;
    String label = null;
    int id = 0;

    //On prepare les requetes SQL
    PreparedStatement stInsert;
    String sqlInsert;

    //On recupere le body
    Document doc;

    doc = DomUtils.xmlString2Document(xmlRole, new StringBuffer());
    Element role = doc.getDocumentElement();

    NodeList children = null;

    children = role.getChildNodes();
    // On parcourt une premire fois les enfants pour rcuperer la liste  crire en base

    //On verifie le bon format
    if (role.getNodeName().equals("role")) {
        for (int i = 0; i < children.getLength(); i++) {
            if (children.item(i).getNodeName().equals("label")) {
                label = DomUtils.getInnerXml(children.item(i));
            }

        }

    } else {
        result = "Erreur lors de la recuperation des attributs de l'utilisateur dans le XML";
    }

    //On ajoute l'utilisateur dans la base de donnees
    try {
        sqlInsert = "REPLACE INTO credential(login, display_firstname, display_lastname,email, password) VALUES (?, ?, ?, ?, UNHEX(SHA1(?)))";
        stInsert = connection.prepareStatement(sqlInsert, Statement.RETURN_GENERATED_KEYS);
        if (dbserveur.equals("oracle")) {
            sqlInsert = "INSERT INTO credential(login, display_firstname, display_lastname,email, password) VALUES (?, ?, ?, ?, crypt(?))";
            stInsert = connection.prepareStatement(sqlInsert, new String[] { "userid" });
        }

        stInsert.setString(1, username);
        stInsert.setString(2, firstname);
        stInsert.setString(3, lastname);
        stInsert.setString(4, email);
        stInsert.setString(5, password);
        stInsert.executeUpdate();

        ResultSet rs = stInsert.getGeneratedKeys();
        if (rs.next()) {
            id = rs.getInt(1);
        }

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    result = "" + id;

    return result;
}

From source file:com.portfolio.data.provider.MysqlAdminProvider.java

@Override
public String postUsers(String in, int userId) throws Exception {
    if (!credential.isAdmin(userId))
        throw new RestWebApplicationException(Status.FORBIDDEN, "No admin right");

    String result = null;/* w w  w  . j a va2s. c  o  m*/
    String username = null;
    String password = null;
    String firstname = null;
    String lastname = null;
    String email = null;
    String active = "1";
    int id = 0;

    //On prepare les requetes SQL
    PreparedStatement stInsert;
    String sqlInsert;

    //On recupere le body
    Document doc;

    doc = DomUtils.xmlString2Document(in, new StringBuffer());
    Element users = doc.getDocumentElement();

    NodeList children = null;

    children = users.getChildNodes();
    // On parcourt une premire fois les enfants pour rcuperer la liste  crire en base

    //On verifie le bon format
    if (users.getNodeName().equals("users")) {
        for (int i = 0; i < children.getLength(); i++) {
            if (children.item(i).getNodeName().equals("user")) {
                NodeList children2 = null;
                children2 = children.item(i).getChildNodes();
                for (int y = 0; y < children2.getLength(); y++) {

                    if (children2.item(y).getNodeName().equals("username")) {
                        username = DomUtils.getInnerXml(children2.item(y));
                    }
                    if (children2.item(y).getNodeName().equals("password")) {
                        password = DomUtils.getInnerXml(children2.item(y));
                    }
                    if (children2.item(y).getNodeName().equals("firstname")) {
                        firstname = DomUtils.getInnerXml(children2.item(y));
                    }
                    if (children2.item(y).getNodeName().equals("lastname")) {
                        lastname = DomUtils.getInnerXml(children2.item(y));
                    }
                    if (children2.item(y).getNodeName().equals("email")) {
                        email = DomUtils.getInnerXml(children2.item(y));
                    }
                    if (children2.item(y).getNodeName().equals("active")) {
                        active = DomUtils.getInnerXml(children2.item(y));
                    }

                }
            }
        }
    } else {
        result = "Erreur lors de la recuperation des attributs de l'utilisateur dans le XML";
    }

    //On ajoute l'utilisateur dans la base de donnees
    try {
        sqlInsert = "REPLACE INTO credential(login, display_firstname, display_lastname,email, password, active) VALUES (?, ?, ?, ?, UNHEX(SHA1(?)),?)";
        stInsert = connection.prepareStatement(sqlInsert, Statement.RETURN_GENERATED_KEYS);
        if (dbserveur.equals("oracle")) {
            sqlInsert = "INSERT INTO credential(login, display_firstname, display_lastname,email, password, active) VALUES (?, ?, ?, ?, crypt(?),?)";
            stInsert = connection.prepareStatement(sqlInsert, new String[] { "userid" });
        }

        stInsert.setString(1, username);

        if (firstname == null) {
            firstname = " ";
            stInsert.setString(2, firstname);
        } else {
            stInsert.setString(2, firstname);
        }

        if (lastname == null) {
            lastname = " ";
            stInsert.setString(3, lastname);
        } else {
            stInsert.setString(3, lastname);
        }

        if (email == null) {
            email = " ";
            stInsert.setString(4, email);
        } else {
            stInsert.setString(4, email);
        }

        stInsert.setString(5, password);

        if (active == null) {
            active = " ";
            stInsert.setString(6, active);
        } else {
            stInsert.setString(6, active);
        }

        stInsert.executeUpdate();

        ResultSet rs = stInsert.getGeneratedKeys();
        if (rs.next()) {
            id = rs.getInt(1);
        }

    } catch (SQLException e) {
        e.printStackTrace();
    }
    //On renvoie le body pour qu'il soit stock dans le log
    result = "<users>";

    result += "<user ";
    result += DomUtils.getXmlAttributeOutputInt("id", id);
    result += ">";
    result += DomUtils.getXmlElementOutput("username", username);
    result += DomUtils.getXmlElementOutput("password", password);
    result += DomUtils.getXmlElementOutput("firstname", firstname);
    result += DomUtils.getXmlElementOutput("lastname", lastname);
    result += DomUtils.getXmlElementOutput("email", email);
    result += DomUtils.getXmlElementOutput("active", active);
    result += "</user>";

    result += "</users>";

    return result;

}