📄 usercheck.java
字号:
package com.singnet.util;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.NumberUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.singnet.common.UserInfo;
import java.io.Serializable;
public class UserCheck implements Serializable {
// ============================================================
private static final Log logger = LogFactory.getLog(UserCheck.class);
//用于生成KEY
public javax.crypto.SecretKey genDESKey() {
byte key_byte[] = "openheartstudioopenheart".getBytes();
javax.crypto.SecretKey deskey;
try {
deskey = CryptTool.genDESKey(key_byte);
return deskey;
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
private HttpServletRequest request;
private HttpServletResponse response;
public String SINGNET_UID_KEY = "SINGNET_UID_KEY";
public String SINGNET_ID_KEY = "SINGNET_ID_KEY";
public String SINGNET_USERNAME_KEY = "SINGNET_USERNAME_KEY";
public String SINGNET_USERGROUPID_KEY = "SINGNET_GROUPID_KEY";
public String SINGNET_ADMINGROUPID_KEY = "SINGNET_ADMINGROUPID_KEY";
public String SINGNET_SIGNATURE_KEY = "SINGNET_SIGNATURE_KEY";
public String SINGNET_HEAD_KEY = "SINGNET_HEAD_KEY";
public String SINGNET_LASTLOGIN_KEY = "SINGNET_LASTLOGIN_KEY";
public String SINGNET_LASTIP_KEY = "SINGNET_LASTIP_KEY";
public String SINGNET_LOGINTIMES_KEY = "SINGNET_LOGINTIMES_KEY";
public String SINGNET_POPEDOM_KEY = "SINGNET_POPEDOM_KEY"; //权限
private String uid = "";
private int id = 0;
private int admingroupid = 0;
private int usergroupid = 0;
private String username = "";
private String signature = "";
private String head = "";
private String popedom = "";
private int logintimes = 0;
private String lastlogin = "";
private String lastip = "";
public String getLastip() {
return lastip;
}
public int getLoginTimes() {
return logintimes;
}
public String getLastLogin() {
return lastlogin;
}
public String getPopedom() {
return popedom;
}
public String getUid() {
return uid;
}
public int getId() {
return id;
}
public int getAdminGroupId() {
return admingroupid;
}
public int getUserGroupId() {
return usergroupid;
}
public String getUserName() {
return username;
}
public String getHead() {
return head;
}
public String getSignature() {
return signature;
}
/**
* 判断用户是否具有权限
* @param uid String
* @param permission String
* @return boolean
*/
public boolean isPermit(String permission) {
if (this.popedom.indexOf(permission) >-1) {
return true;
} else {
return false;
}
}
public UserCheck(HttpServletRequest request) {
this.request = request;
this.getCookies(request);
}
/**
* 没有时间限制的cookie
*
* @param name
* @param value
*/
public void addC(HttpServletResponse response, String name, String value) {
Cookie cookies = new Cookie(name, CryptTool.base64Encode(value));
response.addCookie(cookies);
}
public void addCookies(HttpServletResponse response, UserInfo userinfo,
String maxage) throws Exception {
this.addC(response, this.SINGNET_HEAD_KEY, userinfo.getHead(), maxage);
this.addC(response, this.SINGNET_ID_KEY, userinfo.getId(), maxage);
this.addC(response, this.SINGNET_LASTLOGIN_KEY, userinfo.getLastlogin(),
maxage);
this.addC(response, this.SINGNET_LASTIP_KEY, userinfo.getLastip(),
maxage);
this.addC(response, this.SINGNET_LOGINTIMES_KEY, userinfo.getLogintimes(),
maxage);
//需要加密
this.addC(response, this.SINGNET_POPEDOM_KEY,
userinfo.getPopedom(),maxage);
//需要加密
this.addC(response, this.SINGNET_USERGROUPID_KEY,
userinfo.getUsergroupid(),maxage);
//需要加密
this.addC(response, this.SINGNET_ADMINGROUPID_KEY,
userinfo.getAdmingroupid(),maxage);
this.addC(response, this.SINGNET_SIGNATURE_KEY, userinfo.getSignature(),
maxage);
this.addC(response, this.SINGNET_UID_KEY, userinfo.getUid(), maxage);
this.addC(response, this.SINGNET_USERNAME_KEY, userinfo.getUsername(),
maxage);
}
public void addCookies(HttpServletResponse response, UserInfo userinfo) throws
Exception {
this.addC(response, this.SINGNET_HEAD_KEY, userinfo.getHead());
this.addC(response, this.SINGNET_ID_KEY, userinfo.getId());
this.addC(response, this.SINGNET_LASTLOGIN_KEY, userinfo.getLastlogin());
this.addC(response, this.SINGNET_LASTIP_KEY, userinfo.getLastip());
this.addC(response, this.SINGNET_LOGINTIMES_KEY, userinfo.getLogintimes());
this.addC(response, this.SINGNET_SIGNATURE_KEY, userinfo.getSignature());
this.addC(response, this.SINGNET_UID_KEY, userinfo.getUid());
//需要加密
this.addC(response, this.SINGNET_POPEDOM_KEY,
userinfo.getPopedom());
//需要加密
this.addC(response, this.SINGNET_USERGROUPID_KEY,
userinfo.getUsergroupid());
//需要加密
this.addC(response, this.SINGNET_ADMINGROUPID_KEY,
userinfo.getAdmingroupid());
this.addC(response, this.SINGNET_USERNAME_KEY, userinfo.getUsername());
//System.out.println("add cookies="+userinfo.getUsername());
}
public void addC(HttpServletResponse response, String name, String value,
String maxage) {
Cookie cookies = new Cookie(name, CryptTool.base64Encode(value));
int age = 0;
switch (NumberUtils.stringToInt(maxage)) {
case 0:
age = -1;
case 1:
age = 24 * 60 * 60 * 1;
case 2:
age = 24 * 60 * 60 * 30;
case 3:
age = 24 * 60 * 60 * 365;
default:
age = 24 * 60 * 60 * 365;
}
cookies.setPath("/");
cookies.setMaxAge(age);
response.addCookie(cookies);
}
public void getCookies(HttpServletRequest request) {
Cookie cookies[] = request.getCookies();
Cookie sCookie = null;
try {
if (cookies != null && cookies.length > 0) {
// System.out.println(cookies.length);
for (int i = 0; i < cookies.length; i++) {
sCookie = cookies[i];
//用户名
if (sCookie.getName().equals(SINGNET_USERNAME_KEY)) {
this.username = CryptTool.base64Decode(sCookie.getValue());
}
//用户UID编号
if (sCookie.getName().equals(SINGNET_UID_KEY)) {
this.uid = CryptTool.base64Decode(sCookie.getValue());
}
//用户ID
if (sCookie.getName().equals(SINGNET_ID_KEY)) {
this.id = NumberUtils.stringToInt(sCookie.getValue());
}
//用户签名
if (sCookie.getName().equals(SINGNET_SIGNATURE_KEY)) {
this.signature = CryptTool.base64Decode(sCookie.
getValue());
}
//用户头像
if (sCookie.getName().equals(SINGNET_HEAD_KEY)) {
this.head = CryptTool.base64Decode(sCookie.getValue());
}
//用户所在用户组
if (sCookie.getName().equals(this.SINGNET_USERGROUPID_KEY)) {
this.usergroupid = NumberUtils.stringToInt(CryptTool.base64Decode(sCookie.
getValue()));
}
//用户所在管理组
if (sCookie.getName().equals(SINGNET_ADMINGROUPID_KEY)) {
this.admingroupid = NumberUtils.stringToInt(CryptTool.base64Decode(sCookie.
getValue()));
}
//用户权限字符串
if (sCookie.getName().equals(SINGNET_POPEDOM_KEY)) {
this.popedom =
CryptTool.base64Decode(sCookie.
getValue());
}
//用户最后一次登录时间
if (sCookie.getName().equals(SINGNET_LASTLOGIN_KEY)) {
this.lastlogin =CryptTool.base64Decode( sCookie.
getValue());
}
//最后一次的IP
if (sCookie.getName().equals(SINGNET_LASTIP_KEY)) {
this.lastip = CryptTool.base64Decode(sCookie.getValue());
}
//用户登录次数
if (sCookie.getName().equals(SINGNET_LOGINTIMES_KEY)) {
this.logintimes = NumberUtils
.stringToInt(CryptTool.base64Decode(sCookie.getValue()));
}
}
}
} catch (Exception e) {
// e.printStackTrace();
logger.error(
"getCookies(HttpServletRequest request,HttpServletResponse response)"
+ e);
}
}
/**
* 是否登录
*
* @return
*/
public boolean isLogin() {
if (this.uid != null && uid.length() > 1) {
return true;
}
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -