📄 usermanagerimpl.java
字号:
package com.relationinfo.service.impl;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com.relationinfo.dao.UserDAO;
import com.relationinfo.model.User;
import com.relationinfo.model.UserCookie;
import com.relationinfo.service.UserExistsException;
import com.relationinfo.service.UserManager;
import com.relationinfo.util.RandomGUID;
import com.relationinfo.util.StringUtil;
import org.springframework.dao.DataIntegrityViolationException;
/**
* Implementation of UserManager interface.</p>
*
* <p>
* <a href="UserManagerImpl.java.html"><i>www.relationinfo.com</i></a>
* </p>
*
* @author caoguangxin www.relationinfo.com
*/
public class UserManagerImpl extends BaseManager implements UserManager {
private UserDAO dao;
/**
* Set the DAO for communication with the data layer.
* @param dao
*/
public void setUserDAO(UserDAO dao) {
this.dao = dao;
}
/**
* @see com.relationinfo.service.UserManager#getUser(java.lang.String)
*/
public User getUser(String username) {
return dao.getUser(username);
}
/**
* @see com.relationinfo.service.UserManager#getUsers(com.relationinfo.model.User)
*/
public List getUsers(User user) {
return dao.getUsers(user);
}
/**
* @see com.relationinfo.service.UserManager#saveUser(com.relationinfo.model.User)
*/
public void saveUser(User user) throws UserExistsException {
try {
dao.saveUser(user);
} catch (DataIntegrityViolationException e) {
throw new UserExistsException("User '" + user.getUsername() +
"' already exists!");
}
}
/**
* @see com.relationinfo.service.UserManager#removeUser(java.lang.String)
*/
public void removeUser(String username) {
if (log.isDebugEnabled()) {
log.debug("removing user: " + username);
}
dao.removeUser(username);
}
/**
* @see com.relationinfo.service.UserManager#checkLoginCookie(java.lang.String)
*/
public String checkLoginCookie(String value) {
value = StringUtil.decodeString(value);
String[] values = StringUtils.split(value, "|");
// in case of empty username in cookie, return null
if (values.length == 1) {
return null;
}
if (log.isDebugEnabled()) {
log.debug("looking up cookieId: " + values[1]);
}
UserCookie cookie = new UserCookie();
cookie.setUsername(values[0]);
cookie.setCookieId(values[1]);
cookie = dao.getUserCookie(cookie);
if (cookie != null) {
if (log.isDebugEnabled()) {
log.debug("cookieId lookup succeeded, generating new cookieId");
}
return saveLoginCookie(cookie);
} else {
if (log.isDebugEnabled()) {
log.debug("cookieId lookup failed, returning null");
}
return null;
}
}
/**
* @see com.relationinfo.service.UserManager#createLoginCookie(java.lang.String)
*/
public String createLoginCookie(String username) {
UserCookie cookie = new UserCookie();
cookie.setUsername(username);
return saveLoginCookie(cookie);
}
/**
* Convenience method to set a unique cookie id and save to database
* @param cookie
* @return
*/
private String saveLoginCookie(UserCookie cookie) {
cookie.setCookieId(new RandomGUID().toString());
dao.saveUserCookie(cookie);
return StringUtil.encodeString(cookie.getUsername() + "|" +
cookie.getCookieId());
}
/**
* @see com.relationinfo.service.UserManager#removeLoginCookies(java.lang.String)
*/
public void removeLoginCookies(String username) {
dao.removeUserCookies(username);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -