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

📄 authmanager.java

📁 一个简单实用的网上书城,可当作原型使用
💻 JAVA
字号:
/*
 * AuthManager.java
 *
 * Created on 2007年7月23日, 上午9:20
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package czm;

import java.sql.*;
import javax.servlet.http.*;

public class AuthManager {
    
    private HttpSession session;
    
    //enum
    public static final int UserRole=0;
    public static final int AdminRole=1;
    
    /** Creates a new instance of AuthManager */
    public AuthManager() {
    }
    
    public static Object getUserInfo(HttpSession session, int role)
    {/**返回用户信息,尽量在这里使用session保持低耦合*/
        try
        {
            if(isInRole(session, role)) {
                switch(role) {
                    case UserRole:
                        return session.getAttribute("UserInfo");
                    case AdminRole:
                        return session.getAttribute("AdminInfo");
                    default: break;
                }
            }
            
            return null;
        }
        catch(Exception exc)
        {
            return null;
        }
    }
    
    public static boolean Logout(HttpSession session, int role)
    {/**退出登录,清除会话变量*/
        try
        {
            switch(role)
            {
                case UserRole:
                    session.removeAttribute("UserInfo");
                    //由于多设置memberID
                    session.removeAttribute("memberID");
                    break;
                case AdminRole:
                    session.removeAttribute("AdminInfo");
                    //由于多设置admin_ID
                    session.removeAttribute("admin_ID");
                    break;
                default: break;
            }
            
            return true;
        }
        catch(Exception exc)
        {
            return false;
        }
    }
    
    public static boolean isInRole(HttpSession session, int role)
    {//验证授权是否存在(0用户,1管理员)
        try {
            switch(role) {
                case AdminRole:
                    if(session.getAttribute("AdminInfo")!=null)return true;
                    break;
                case UserRole:
                    if(session.getAttribute("UserInfo")!=null)return true;
                    break;
                default: break;
            }
            
            return false;
        }
        catch(Exception exc)
        {
            return false;
        }
    }
    
    public static boolean login(HttpSession session, String name, String pwd, int role)
    {/**  登录,输入用户名,密码,权限(0用户,1管理员)*/
        
        try{
            String sql="";
            opendb dbo=new opendb();
            ResultSet rs;
        
            switch (role)
            {/**根据用户还是管理员,执行不同的sql语句*/
                case UserRole:
                    sql="select pwd from buyerInfo where memberID='"+name+"'";
                    break;
                case AdminRole:
                    sql="select Admin_pwd from Admin where Admin_ID='"+name+"'";
                    break;
                default: break;
            }
        
            //执行查询
            rs=dbo.executeQuery(sql);
            
            if(rs.next())
            {
                if(pwd.compareTo(rs.getString(1))==0)
                {//有记录且密码相同,设置授权,如果是用户增加登录次数
                    switch(role)
                    {
                        case UserRole:
                            sql="Update buyerInfo set logonTimes = logonTimes +1 where memberID = '" + name + "'";
                            dbo.executeUpdate(sql);
                            
                            User user=new User();
                            user.ID=name;
                            user.ShowUser();
                            //设置全局会话变量,会员信息
                            session.setAttribute("UserInfo",user);
                            //多设置全局会话变量memberID
                            session.setAttribute("memberID",name);
                            break;
                        case AdminRole:
                            //设置全局会话变量,管理员信息
                            session.setAttribute("AdminInfo",name);
                            //多设置全局会话变量,admin_ID
                            session.setAttribute("admin_ID", name);
                            break;
                        default: break;
                    }
                    return true;
                }
            }
            
            return false;
        }
        catch(Exception exc)
        {
            return false;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -