`
y806839048
  • 浏览: 1118446 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

shiro实现登陆的过程

阅读更多

 

shiro实现登陆的过程:

大致

 1,实例化token

 2, token放入Subject登陆

 

1,自定义登陆

   1,实例化token

   2, token放入Subject登陆

   Subject currentUser = SecurityUtils.getSubject(); // 获取当前的Subject

   UsernamePasswordToken token = new UsernamePasswordToken(username, password); // 为了验证登录用户而封装的token

   token.setRememberMe(true);// 设计记住用户

   currentUser.login(token);

   if (currentUser.isAuthenticated()) {

System.out.println("用户[" + username + "]登录认证通过");

}

 

自定义token登陆的时候就不会调用复写的createToken方法

 

 

2,使用框架的的登陆

     1,实例化token

     2, token放入Subject登陆

 

public abstract class AuthenticatingFilter extends AuthenticationFilter {

 protected boolean executeLogin(ServletRequest request, ServletResponse response) throws Exception {

        AuthenticationToken token = this.createToken(request, response);

        if(token == null) {

            String e1 = "createToken method implementation returned null. A valid non-null AuthenticationToken must be created in order to execute a login attempt.";

            throw new IllegalStateException(e1);

        } else {

            try {

                Subject e = this.getSubject(request, response);

                e.login(token);

                return this.onLoginSuccess(token, e, request, response);

            } catch (AuthenticationException var5) {

                return this.onLoginFailure(token, var5, request, response);

            }

        }

    }

}

 

 

 

 

public class MyAuthenticationFilter extends FormAuthenticationFilter{

@Override

protected org.apache.shiro.authc.AuthenticationToken createToken(ServletRequest servletRequest, ServletResponse servletResponse) {

String username = getUsername(servletRequest);

String password = getPassword(servletRequest);

String captchaId = getCaptchaId(servletRequest);

String captcha = getCaptcha(servletRequest);

boolean rememberMe = isRememberMe(servletRequest);

if(!rememberMe){

rememberMe=true;

}

String host = getHost(servletRequest);

String validateCode = (String)((HttpServletRequest) servletRequest).getSession().getAttribute("validateCode");;

return new AuthenticationToken( username,  password,

captchaId,  captcha,  validateCode,

rememberMe,  host) ;

}

 

 

 

}

 

分享到:
评论

相关推荐

    shiro实现授权登陆验证

    在这个项目中,我们将会深入理解如何利用Shiro来实现登录验证和权限控制。 首先,我们要理解Shiro的核心组件。`Subject`是Shiro的中心概念,它代表了当前的用户或“安全主体”。`Realms`是Shiro与应用数据源交互的...

    ssm+shiro实现简单的登陆认证功能

    在SSM+Shiro实现登录认证的过程中,主要步骤包括: 1. **Shiro配置**:首先,在Spring的配置文件中引入Shiro的相关bean,如SecurityManager、Realm(自定义的权限验证类,通常继承AuthorizingRealm)等。 2. **...

    shiro登陆注销权限控制

    标题"shiro登陆注销权限控制"主要涉及的是Apache Shiro框架在登录、登出以及权限管理方面应用。Shiro是一个强大且易用的Java安全框架,处理认证、授权、会话管理和加密等核心安全问题。在这个项目中,登录和注销功能...

    springboot+springshiro实现简单的登陆注册模块

    在本项目中,"springboot+springshiro实现简单的登陆注册模块" 是一个基于Spring Boot框架集成Spring Shiro实现的用户身份验证与授权系统。这个系统涵盖了基础的用户登录、注册功能,同时还考虑了安全性方面的需求,...

    shiro框架登陆注册.zip

    在这个"shiro框架登陆注册.zip"的压缩包中,我们可以期待找到一个关于如何在Java应用中实现用户登录和注册功能的示例。 Shiro 的核心组件包括: 1. **Authentication(认证)**:验证用户身份的过程,确保用户是...

    springmvc+spring+mybatis+druid+shiro 登陆实现

    在这个项目中,我们加入了Druid数据源和Shiro安全框架,来实现更全面的功能。 首先,Spring是整个应用的基础,它提供了一个容器来管理对象(Bean)以及它们之间的依赖关系。SpringMVC作为Spring的一部分,主要负责...

    shiro登陆身份认证和权限管理 密码加密

    1. **身份认证**:在 Shiro 中,身份认证是验证用户是否是他们声称的那个人的过程。Shiro 提供了 `Subject` 接口作为用户与框架交互的桥梁。当用户尝试登录时,通常会调用 `Subject.login()` 方法,传递包含用户名和...

    spring boot+shiro+mybatis实现不同用户登录显示不同的权限菜单

    Spring Boot、Shiro和MyBatis这三大框架的组合提供了一种高效且灵活的方式来实现这一目标。本项目通过集成这三个工具,能够根据用户的登录身份展示不同的权限菜单,确保了用户只能访问他们被授权的功能。 **Spring ...

    cas-shiro-https单点登录实现

    在这个场景中,我们关注的是`cas-shiro-https`的实现,它结合了CAS(Central Authentication Service)服务器、Shiro安全框架以及HTTPS安全协议。下面将详细阐述这些知识点。 首先,CAS是Java开发的一个开源身份...

    spring boot 1.5.4 集成shiro+cas,实现单点登录和权限控制.docx

    Spring Boot 1.5.4集成Shiro+CAS实现单点登录和...这个过程涉及到了Spring Boot的自动配置、Shiro的安全框架、CAS单点登录服务的集成以及权限控制等多个方面的内容。在实际项目中,还需要根据具体需求进行调整和优化。

    shiro管理端权限控制

    1. **认证**:在 Shiro 中,认证是验证用户身份的过程。通过用户名和密码与 Realm 进行匹配,如果匹配成功,则认为用户认证通过。Shiro 提供了 RememberMe 功能,使得用户在下次访问时无需重新登录。 2. **授权**:...

    ssm+shiro+redis整合认证权限实现单点登陆仅供开发者参考使用.7z

    Shiro可以很好地实现SSO机制,通过共享session或者令牌(token)来完成。 6. **Redis**:Redis是一个高性能的键值数据存储系统,常被用作缓存服务。在SSO中,Redis可以用来存储用户的登录状态和权限信息,提供快速...

    springboot+redis+shiro单点登录,统一异常处理,统一日志

    在本项目中,我们将结合SpringBoot、Redis和Shiro来实现SSO功能,并进行统一的异常处理和日志管理。 首先,SpringBoot是一个基于Spring框架的轻量级开发工具,它简化了新Spring应用的初始搭建以及开发过程。...

    单点登陆(sso+shiro+cas)

    在Spring框架下,结合Shiro和CAS实现SSO的过程主要包括以下步骤: 1. **配置CAS服务器**:首先,你需要搭建一个CAS服务器,这通常涉及到安装和配置CAS服务端应用,如部署CAS服务器的war文件到应用服务器(如Tomcat...

    简单的介绍,简单的配置,简单的扩展 shiro入门学习手册 共35页.pptx

    SessionManager 接口管理着所有用户的会话,并可实现分布式会话,适应大型应用的需求。 4. **加密 (Cryptography)**:Shiro 封装了 JDK 中的加密算法,提供了易用的加密工具,用于存储敏感信息,如密码,以保护数据...

    Java中基于Shiro,JWT实现微信小程序登录完整例子及实现过程

    在本文中,我们将探讨如何在Java环境中,利用Apache Shiro和JSON Web Tokens (JWT)来实现微信小程序的自定义登录功能。首先,我们要理解微信小程序的登录流程,它通常涉及小程序端调用`wx.login()`获取临时凭证...

    idea+ssm+maven+shiro

    描述 "基于maven管理的ssm小demo基础上添加了shiro框架,用登陆做测试。" 提供了项目的基本构建方式以及主要功能。项目是基于Maven构建的,这使得依赖管理和项目构建更加规范和便捷。SSM框架是目前Java Web开发中...

    SpringBoot+Shiro登录验证码制作

    总结来说,本文介绍了如何使用SpringBoot和Shiro实现登录验证码功能,通过自定义的`CaptchaUtil`类生成图形验证码,增强系统安全性,防止机器人自动刷登录。这种验证码生成方法简单且有效,适用于大多数Web应用。

    SpringMVC精品资源--使用SSM+Shiro开发的学生作业管理系统。支持批量打包下载,QQ登陆等功能 生产版:.zip

    Shiro是Apache的一个安全框架,用于实现身份验证、授权、会话管理和加密等安全功能。在这个系统中,Shiro可能被用来处理用户登录、权限控制以及安全相关的操作,比如QQ登录集成。QQ登录是一种社交登录方式,通常通过...

    ssm:基于RESTful风格的前合并分离的SSM框架,集成了shiro和swagger等框架

    基础的SSM框架,集成了shiro作为登陆验证和权限管理和swagger作为开接口文档,让开发商专注于业务的开发 1,前一级分离思想 其实前一次分离并不只是只是开发模式,而是网络应用的一种架构模式,之前先使用HTTP或其他...

Global site tag (gtag.js) - Google Analytics