📄 jdbcaccessprovider4exp.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 + -