操作的Session工具类

正常一般项目都会有登录操作,但用户登录成功后会将登录信息保存到session中,如需要用户信息的时候也可以直接拿到;

通过session的有效期或者是否存在也可以保证用户的登录安全性或者是否有登录;

当然也可以将别的一些信息存入session中,以key,value的形式存取;

所有在此再记录一下,这是一个直接复制即可使用的Utils; 

import cn.cnic.research.model.User;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 *
 * Session 工具类
 *
 */
public final class SessionUtils {


    private static final String SESSION_USER = "session_user";

    private static final String SESSION_VALIDATECODE = "session_validatecode";//验证码


    private static final String SESSION_ACCESS_URLS = "session_access_urls"; //系统能够访问的URL


    private static final String SESSION_MENUBTN_MAP = "session_menubtn_map"; //系统菜单按钮


    /**
     * 设置session的值
     * @param request
     * @param key
     * @param value
     */
    public static void setAttr(HttpServletRequest request,String key,Object value){
        request.getSession(true).setAttribute(key, value);
    }


    /**
     * 获取session的值
     * @param request
     * @param key
     */
    public static Object getAttr(HttpServletRequest request,String key){
        return request.getSession(true).getAttribute(key);
    }

    /**
     * 删除Session值
     * @param request
     * @param key
     */
    public static void removeAttr(HttpServletRequest request,String key){
        request.getSession(true).removeAttribute(key);
    }

    /**
     * 设置用户信息 到session
     * @param request
     * @param user
     */
    public static void setUser(HttpServletRequest request, User user){
        request.getSession(true).setAttribute(SESSION_USER, user);
    }


    /**
     * 从session中获取用户信息
     * @param request
     * @return SysUser
     */
    public static User getUser(HttpServletRequest request){
        return (User)request.getSession(true).getAttribute(SESSION_USER);
    }


    /**
     * 从session中删除用户信息
     * @param request
     * @return SysUser
     */
    public static void removeUser(HttpServletRequest request){
        removeAttr(request, SESSION_USER);
    }


    /**
     * 设置验证码 到session
     * @param request
     * @param validateCode
     */
    public static void setValidateCode(HttpServletRequest request,String validateCode){
        request.getSession(true).setAttribute(SESSION_VALIDATECODE, validateCode);
    }


    /**
     * 从session中获取验证码
     * @param request
     * @return SysUser
     */
    public static String getValidateCode(HttpServletRequest request){
        return (String)request.getSession(true).getAttribute(SESSION_VALIDATECODE);
    }


    /**
     * 从session中获删除验证码
     * @param request
     * @return SysUser
     */
    public static void removeValidateCode(HttpServletRequest request){
        removeAttr(request, SESSION_VALIDATECODE);
    }

    /**
     * 判断当前登录用户是否超级管理员
     * @param request
     * @return
     */
    public static boolean isAdmin(HttpServletRequest request){ //判断登录用户是否超级管理员
        User user =  getUser(request);
        if(user == null  || !SuperAdmin.YES.key.endsWith(user.getIsSuperAdmin())){
            return false;
        }
        return true;
    }

    /**
     *设置当前用户可以访问的urls
     * @param request
     * @param accessUrls
     */
    public static void setAccessUrl(HttpServletRequest request,List<String> accessUrls){
        setAttr(request, SESSION_ACCESS_URLS, accessUrls);
    }



    /**
     * 判断URL是否可访问
     * @param request
     * @return
     */
    public static boolean isAccessUrl(HttpServletRequest request,String url){
        List<String> accessUrls = (List)getAttr(request, SESSION_ACCESS_URLS);
        if(accessUrls == null ||accessUrls.isEmpty() || !accessUrls.contains(url)){
            return false;
        }
        return true;
    }


    /**
     * 设置菜单按钮
     * @param request
     * @param btnMap
     */
    public static void setMemuBtnMap(HttpServletRequest request,Map<String,Object> btnMap){ //判断登录用户是否超级管理员
        setAttr(request, SESSION_MENUBTN_MAP, btnMap);
    }

    /**
     * 获取菜单按钮
     * @param request
     * @param menuUri
     */
    public static List<String> getMemuBtnListVal(HttpServletRequest request,String menuUri){
        Map btnMap  = (Map)getAttr(request, SESSION_MENUBTN_MAP);
        if(btnMap == null || btnMap.isEmpty()){
            return null;
        }
        return (List<String>)btnMap.get(menuUri);
    }

}

如果有问题请及时留言,我会第一时间反馈,也可添加我的qq:983469079

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!如果您想要使用Java进行SFTP操作,可以使用JSch库来实现。下面是一个示例的SFTP工具类,帮助您进行SFTP文件传输: ```java import com.jcraft.jsch.*; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Properties; public class SftpUtils { private String host; private int port; private String username; private String password; public SftpUtils(String host, int port, String username, String password) { this.host = host; this.port = port; this.username = username; this.password = password; } public void uploadFile(String localFilePath, String remoteFilePath) throws JSchException, SftpException { JSch jsch = new JSch(); Session session = jsch.getSession(username, host, port); session.setPassword(password); Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.connect(); ChannelSftp channel = (ChannelSftp) session.openChannel("sftp"); channel.connect(); File localFile = new File(localFilePath); FileInputStream fis = new FileInputStream(localFile); channel.put(fis, remoteFilePath); fis.close(); channel.disconnect(); session.disconnect(); } public void downloadFile(String remoteFilePath, String localFilePath) throws JSchException, SftpException { JSch jsch = new JSch(); Session session = jsch.getSession(username, host, port); session.setPassword(password); Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.connect(); ChannelSftp channel = (ChannelSftp) session.openChannel("sftp"); channel.connect(); File localFile = new File(localFilePath); FileOutputStream fos = new FileOutputStream(localFile); channel.get(remoteFilePath, fos); fos.close(); channel.disconnect(); session.disconnect(); } public static void main(String[] args) { String host = "your_sftp_host"; int port = 22; String username = "your_username"; String password = "your_password"; String localFilePath = "local_file_path"; String remoteFilePath = "remote_file_path"; SftpUtils sftpUtils = new SftpUtils(host, port, username, password); try { // 上传文件 sftpUtils.uploadFile(localFilePath, remoteFilePath); // 下载文件 // sftpUtils.downloadFile(remoteFilePath, localFilePath); } catch (JSchException | SftpException e) { e.printStackTrace(); } } } ``` 您可以根据实际情况修改主机地址、端口、用户名、密码,以及本地文件路径和远程文件路径,然后在`main`方法中调用相关方法进行SFTP文件上传或下载。 请确保将JSch库添加到您的项目依赖中。希望对您有所帮助!如果有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值