RememberMeFilter.java 文件源码

java
阅读 30 收藏 0 点赞 0 评论 0

项目:webside 作者:
@Override
protected boolean isAccessAllowed(ServletRequest request,
        ServletResponse response, Object mappedValue) {
    Subject subject = getSubject(request, response);

    // 如果 isAuthenticated 为 false 证明不是登录过的,同时 isRememberd 为true 证明是没登陆直接通过记住我功能进来的
    if (!subject.isAuthenticated() && subject.isRemembered()) {
        // 获取session的USERSESSION属性来看session是不是空的
        if(null == ShiroAuthenticationManager.getSessionAttribute(ShiroUtils.USERSESSION))
        {
            // 初始化
            UserEntity userEntity = (UserEntity) subject.getPrincipal();
            ShiroAuthenticationManager.setSessionAttribute(ShiroUtils.USERSESSION, userEntity);
        }
    }

    // 这个方法本来只返回 subject.isAuthenticated() 现在我们加上 subject.isRemembered()
    // 让它同时也兼容remember这种情况
    return subject.isAuthenticated() || subject.isRemembered();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号