📄 cmsuserdriver.java
字号:
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, null);
}
}
/**
* @see org.opencms.db.I_CmsUserDriver#deleteGroup(org.opencms.db.CmsDbContext, java.lang.String)
*/
public void deleteGroup(CmsDbContext dbc, String name) throws CmsDataAccessException {
Connection conn = null;
PreparedStatement stmt = null;
try {
// create statement
conn = m_sqlManager.getConnection(dbc);
stmt = m_sqlManager.getPreparedStatement(conn, "C_GROUPS_DELETEGROUP");
stmt.setString(1, name);
stmt.executeUpdate();
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, null);
}
}
/**
* @see org.opencms.db.I_CmsUserDriver#deleteUser(org.opencms.db.CmsDbContext, java.lang.String)
*/
public void deleteUser(CmsDbContext dbc, String userName) throws CmsDataAccessException {
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = m_sqlManager.getConnection(dbc);
stmt = m_sqlManager.getPreparedStatement(conn, "C_USERS_DELETE");
stmt.setString(1, userName);
stmt.executeUpdate();
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, null);
}
}
/**
* @see org.opencms.db.I_CmsUserDriver#deleteUserInGroup(org.opencms.db.CmsDbContext, org.opencms.util.CmsUUID, org.opencms.util.CmsUUID)
*/
public void deleteUserInGroup(CmsDbContext dbc, CmsUUID userId, CmsUUID groupId) throws CmsDataAccessException {
PreparedStatement stmt = null;
Connection conn = null;
try {
// create statement
conn = m_sqlManager.getConnection(dbc);
stmt = m_sqlManager.getPreparedStatement(conn, "C_GROUPS_REMOVEUSERFROMGROUP");
stmt.setString(1, groupId.toString());
stmt.setString(2, userId.toString());
stmt.executeUpdate();
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, null);
}
}
/**
* @see org.opencms.db.I_CmsUserDriver#destroy()
*/
public void destroy() throws Throwable {
finalize();
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_SHUTDOWN_DRIVER_1, getClass().getName()));
}
}
/**
* @see org.opencms.db.I_CmsUserDriver#existsGroup(org.opencms.db.CmsDbContext, java.lang.String, java.lang.Object)
*/
public boolean existsGroup(CmsDbContext dbc, String groupName, Object reservedParam) throws CmsDataAccessException {
ResultSet res = null;
PreparedStatement stmt = null;
Connection conn = null;
boolean result = false;
try {
if (reservedParam == null) {
// get a JDBC connection from the OpenCms standard {online|offline|backup} pools
conn = m_sqlManager.getConnection(dbc);
} else {
// get a JDBC connection from the reserved JDBC pools
conn = m_sqlManager.getConnection(dbc, ((Integer)reservedParam).intValue());
}
stmt = m_sqlManager.getPreparedStatement(conn, "C_GROUPS_READGROUP");
stmt.setString(1, groupName);
res = stmt.executeQuery();
// create new Cms group object
if (res.next()) {
result = true;
} else {
result = false;
}
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, res);
}
return result;
}
/**
* @see org.opencms.db.I_CmsUserDriver#existsUser(org.opencms.db.CmsDbContext, java.lang.String, int, java.lang.Object)
*/
public boolean existsUser(CmsDbContext dbc, String username, int usertype, Object reservedParam)
throws CmsDataAccessException {
PreparedStatement stmt = null;
ResultSet res = null;
Connection conn = null;
boolean result = false;
try {
if (reservedParam == null) {
// get a JDBC connection from the OpenCms standard {online|offline|backup} pools
conn = m_sqlManager.getConnection(dbc);
} else {
// get a JDBC connection from the reserved JDBC pools
conn = m_sqlManager.getConnection(dbc, ((Integer)reservedParam).intValue());
}
stmt = m_sqlManager.getPreparedStatement(conn, "C_USERS_READ");
stmt.setString(1, username);
stmt.setInt(2, usertype);
res = stmt.executeQuery();
if (res.next()) {
result = true;
} else {
result = false;
}
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, res);
}
return result;
}
/**
* @see org.opencms.db.I_CmsUserDriver#getSqlManager()
*/
public CmsSqlManager getSqlManager() {
return m_sqlManager;
}
/**
* @see org.opencms.db.I_CmsUserDriver#importUser(org.opencms.db.CmsDbContext, org.opencms.util.CmsUUID, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, long, int, java.util.Map, java.lang.String, int, java.lang.Object)
*/
public CmsUser importUser(
CmsDbContext dbc,
CmsUUID id,
String name,
String password,
String description,
String firstname,
String lastname,
String email,
long lastlogin,
int flags,
Map additionalInfos,
String address,
int type,
Object reservedParam) throws CmsDataAccessException {
Connection conn = null;
PreparedStatement stmt = null;
if (existsUser(dbc, name, type, reservedParam)) {
CmsMessageContainer message = Messages.get().container(Messages.ERR_USER_WITH_NAME_ALREADY_EXISTS_1, name);
if (LOG.isErrorEnabled()) {
LOG.error(message.key());
}
throw new CmsDbEntryAlreadyExistsException(message);
}
try {
if (reservedParam == null) {
// get a JDBC connection from the OpenCms standard {online|offline|backup} pools
conn = m_sqlManager.getConnection(dbc);
} else {
// get a JDBC connection from the reserved JDBC pools
conn = m_sqlManager.getConnection(dbc, ((Integer)reservedParam).intValue());
}
stmt = m_sqlManager.getPreparedStatement(conn, "C_USERS_ADD");
stmt.setString(1, id.toString());
stmt.setString(2, name);
stmt.setString(3, m_sqlManager.validateEmpty(password));
stmt.setString(4, m_sqlManager.validateEmpty(description));
stmt.setString(5, m_sqlManager.validateEmpty(firstname));
stmt.setString(6, m_sqlManager.validateEmpty(lastname));
stmt.setString(7, m_sqlManager.validateEmpty(email));
stmt.setLong(8, lastlogin);
stmt.setInt(9, flags);
m_sqlManager.setBytes(stmt, 10, internalSerializeAdditionalUserInfo(additionalInfos));
stmt.setString(11, m_sqlManager.validateEmpty(address));
stmt.setInt(12, type);
stmt.executeUpdate();
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} catch (IOException e) {
throw new CmsDbIoException(Messages.get().container(Messages.ERR_SERIALIZING_USER_DATA_1, name), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, null);
}
return readUser(dbc, id);
}
/**
* @see org.opencms.db.I_CmsDriver#init(org.opencms.db.CmsDbContext, org.opencms.configuration.CmsConfigurationManager, java.util.List, org.opencms.db.CmsDriverManager)
*/
public void init(
CmsDbContext dbc,
CmsConfigurationManager configurationManager,
List successiveDrivers,
CmsDriverManager driverManager) {
Map configuration = configurationManager.getConfiguration();
ExtendedProperties config;
if (configuration instanceof ExtendedProperties) {
config = (ExtendedProperties)configuration;
} else {
config = new ExtendedProperties();
config.putAll(configuration);
}
String poolUrl = config.get("db.user.pool").toString();
String classname = config.get("db.user.sqlmanager").toString();
m_sqlManager = this.initSqlManager(classname);
m_sqlManager.init(I_CmsUserDriver.DRIVER_TYPE_ID, poolUrl);
m_driverManager = driverManager;
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_ASSIGNED_POOL_1, poolUrl));
}
m_digestAlgorithm = config.getString(CmsDriverManager.CONFIGURATION_DB + ".user.digest.type", "MD5");
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_DIGEST_ALGORITHM_1, m_digestAlgorithm));
}
m_digestFileEncoding = config.getString(
CmsDriverManager.CONFIGURATION_DB + ".user.digest.encoding",
CmsEncoder.ENCODING_UTF_8);
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_DIGEST_ENCODING_1, m_digestFileEncoding));
}
// create the digest
try {
m_digest = MessageDigest.getInstance(m_digestAlgorithm);
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_DIGEST_ENC_3,
m_digest.getAlgorithm(),
m_digest.getProvider().getName(),
String.valueOf(m_digest.getProvider().getVersion())));
}
} catch (NoSuchAlgorithmException e) {
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_SET_DIGEST_ERROR_0), e);
}
}
m_adminUserName = OpenCms.getDefaultUsers().getUserAdmin();
try {
if (!existsGroup(dbc, OpenCms.getDefaultUsers().getGroupAdministrators(), null)) {
fillDefaults(dbc);
}
} catch (CmsException e) {
if (CmsLog.INIT.isErrorEnabled()) {
CmsLog.INIT.error(Messages.get().getBundle().key(Messages.INIT_USER_GROUP_INITIALIZATION_FAILED_0), e);
}
throw new CmsInitException(Messages.get().container(Messages.ERR_INITIALIZING_USER_DRIVER_0), e);
}
if (successiveDrivers != null && !successiveDrivers.isEmpty()) {
if (LOG.isWarnEnabled()) {
LOG.warn(Messages.get().getBundle().key(
Messages.LOG_SUCCESSIVE_DRIVERS_UNSUPPORTED_1,
getClass().getName()));
}
}
}
/**
* @see org.opencms.db.I_CmsUserDriver#initSqlManager(String)
*/
public org.opencms.db.generic.CmsSqlManager initSqlManager(String classname) {
return CmsSqlManager.getInstance(classname);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -