⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdbcaccessprovider4exp.java

📁 这个是使用java开发的一个平台
💻 JAVA
字号:
/*
 * Created on 2005-8-3
 * 
 * TODO To change the template for this generated file go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
package com.exp.integration.osworkflow.user;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.exp.dao.DBConnectionFactory;
import com.exp.integration.osworkflow.OSWorkFlowDBConfigUtil;
import com.opensymphony.user.provider.AccessProvider;
import com.opensymphony.user.provider.jdbc.BaseJDBCProvider;

// Referenced classes of package com.opensymphony.user.provider.jdbc:
//            BaseJDBCProvider

public class JDBCAccessProvider4EXP extends BaseJDBCProvider implements
        AccessProvider {

    private static final Log log;

    protected String dataSource = "";

    public Connection getConnection() {
        try {
            return DBConnectionFactory.createDBConnection(this.dataSource)
                    .getConnection();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public boolean addToGroup(String username, String groupname) {
        return false;
    }

    public boolean create(String name) {
        boolean created = false;
        return created;
    }

    public boolean handles(String name) {
        boolean handles = false;
        Connection conn = getConnection();
        try {

            PreparedStatement ps = conn.prepareStatement("SELECT " + userName
                    + " FROM " + userTable + " WHERE " + userName + " = ?");
            ps.setString(1, name);
            ResultSet rs = ps.executeQuery();
            if (rs.next())
                handles = true;
            rs.close();
            ps.close();
            if (!handles) {
                ps = conn.prepareStatement("SELECT " + groupName + " FROM "
                        + groupTable + " WHERE " + groupName + " = ?");
                ps.setString(1, name);
                rs = ps.executeQuery();
                handles = rs.next();
                rs.close();
                ps.close();
            }

        } catch (SQLException e) {
            log.fatal("Could not see if [" + name + "] is handled", e);
        } finally {
            try {
                conn.close();
            } catch (Exception e) {

            }
        }
        return handles;
    }

    public boolean inGroup(String username, String groupname) {
        boolean inGroup = false;
        if (groupname.startsWith("u:")) {
            return groupname.equals("u:" + username);
        }
        Connection conn = getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("SELECT * FROM "
                    + membershipTable + " WHERE " + userName + " = ? AND "
                    + groupName + " = ?");
            ps.setString(1, username);
            ps.setString(2, groupname);
            ResultSet rs = ps.executeQuery();
            inGroup = rs.next();
            rs.close();
            ps.close();

        } catch (SQLException e) {
            log.fatal("Could not determine if user [" + username
                    + "] is in group [" + groupname + "]", e);
        } finally {
            if (conn != null) {

                try {
                    conn.close();
                } catch (Exception e) {
                }

            }
        }
        return inGroup;
    }

    public List list() {
        ArrayList groups = new ArrayList();
        Connection conn = getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("SELECT " + groupName
                    + " FROM " + groupTable + " ORDER BY " + groupName);
            ResultSet rs;
            for (rs = ps.executeQuery(); rs.next(); groups.add(rs.getString(1)))
                ;
            rs.close();
            ps.close();
        } catch (SQLException e) {
            log.fatal("Could not list groups", e);
        } finally {

            try {
                conn.close();
            } catch (Exception e) {

            }
        }
        return groups;
    }

    public List listGroupsContainingUser(String username) {
        ArrayList groups = new ArrayList();
        Connection conn = getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("SELECT "
                    + membershipGroupName + " FROM " + membershipTable
                    + " WHERE " + membershipUserName + " = ?");
            ps.setString(1, username);
            ResultSet rs;
            for (rs = ps.executeQuery(); rs.next(); groups.add(rs.getString(1)))
                ;
            rs.close();
            ps.close();
        } catch (SQLException e) {
            log.fatal("Could not list groups containing user [" + username
                    + "]", e);
        } finally {
            try {
                conn.close();
            } catch (Exception e) {

            }
        }
        return groups;
    }

    public List listUsersInGroup(String groupname) {
        ArrayList users = new ArrayList();
        Connection conn = getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("SELECT "
                    + membershipUserName + " FROM " + membershipTable
                    + " WHERE " + membershipGroupName + " = ?");
            ps.setString(1, groupname);
            ResultSet rs;
            for (rs = ps.executeQuery(); rs.next(); users.add(rs.getString(1)))
                ;
            rs.close();
            ps.close();
        } catch (SQLException e) {
            log.fatal("Could not list users in group [" + groupname + "]", e);
        } finally {
            try {
                conn.close();
            } catch (Exception e) {

            }
        }
        return users;
    }

    public boolean remove(String name) {
        boolean removed = false;
        return removed;
    }

    public boolean removeFromGroup(String username, String groupname) {
        boolean removedFromGroup = false;
        return removedFromGroup;
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.opensymphony.user.provider.UserProvider#init(java.util.Properties)
     */
    public boolean init(Properties dual) {
        Properties props = OSWorkFlowDBConfigUtil.getOsuserProps();
        dataSource = props.getProperty("datasource");
        if (dataSource == null) {
            dataSource = "";
        }
        userTable = (String) props.get("user.table");
        groupTable = (String) props.get("group.table");
        membershipTable = (String) props.get("membership.table");
        userName = (String) props.get("user.name");
        userPassword = (String) props.get("user.password");
        groupName = (String) props.get("group.name");
        membershipUserName = (String) props.get("membership.userName");
        membershipGroupName = (String) props.get("membership.groupName");
        return true;
    }

    static {
        log = LogFactory
                .getLog("com.opensymphony.user.provider.jdbc.JDBCAccessProvider");
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -