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

📄 usercheck.java

📁 本程序是作者开发的一个宽带娱乐系统的一个模块.
💻 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 + -