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的核心组件。`Subject`是Shiro的中心概念,它代表了当前的用户或“安全主体”。`Realms`是Shiro与应用数据源交互的...
在SSM+Shiro实现登录认证的过程中,主要步骤包括: 1. **Shiro配置**:首先,在Spring的配置文件中引入Shiro的相关bean,如SecurityManager、Realm(自定义的权限验证类,通常继承AuthorizingRealm)等。 2. **...
标题"shiro登陆注销权限控制"主要涉及的是Apache Shiro框架在登录、登出以及权限管理方面应用。Shiro是一个强大且易用的Java安全框架,处理认证、授权、会话管理和加密等核心安全问题。在这个项目中,登录和注销功能...
在本项目中,"springboot+springshiro实现简单的登陆注册模块" 是一个基于Spring Boot框架集成Spring Shiro实现的用户身份验证与授权系统。这个系统涵盖了基础的用户登录、注册功能,同时还考虑了安全性方面的需求,...
在这个"shiro框架登陆注册.zip"的压缩包中,我们可以期待找到一个关于如何在Java应用中实现用户登录和注册功能的示例。 Shiro 的核心组件包括: 1. **Authentication(认证)**:验证用户身份的过程,确保用户是...
在这个项目中,我们加入了Druid数据源和Shiro安全框架,来实现更全面的功能。 首先,Spring是整个应用的基础,它提供了一个容器来管理对象(Bean)以及它们之间的依赖关系。SpringMVC作为Spring的一部分,主要负责...
1. **身份认证**:在 Shiro 中,身份认证是验证用户是否是他们声称的那个人的过程。Shiro 提供了 `Subject` 接口作为用户与框架交互的桥梁。当用户尝试登录时,通常会调用 `Subject.login()` 方法,传递包含用户名和...
Spring Boot、Shiro和MyBatis这三大框架的组合提供了一种高效且灵活的方式来实现这一目标。本项目通过集成这三个工具,能够根据用户的登录身份展示不同的权限菜单,确保了用户只能访问他们被授权的功能。 **Spring ...
在这个场景中,我们关注的是`cas-shiro-https`的实现,它结合了CAS(Central Authentication Service)服务器、Shiro安全框架以及HTTPS安全协议。下面将详细阐述这些知识点。 首先,CAS是Java开发的一个开源身份...
Spring Boot 1.5.4集成Shiro+CAS实现单点登录和...这个过程涉及到了Spring Boot的自动配置、Shiro的安全框架、CAS单点登录服务的集成以及权限控制等多个方面的内容。在实际项目中,还需要根据具体需求进行调整和优化。
1. **认证**:在 Shiro 中,认证是验证用户身份的过程。通过用户名和密码与 Realm 进行匹配,如果匹配成功,则认为用户认证通过。Shiro 提供了 RememberMe 功能,使得用户在下次访问时无需重新登录。 2. **授权**:...
Shiro可以很好地实现SSO机制,通过共享session或者令牌(token)来完成。 6. **Redis**:Redis是一个高性能的键值数据存储系统,常被用作缓存服务。在SSO中,Redis可以用来存储用户的登录状态和权限信息,提供快速...
在本项目中,我们将结合SpringBoot、Redis和Shiro来实现SSO功能,并进行统一的异常处理和日志管理。 首先,SpringBoot是一个基于Spring框架的轻量级开发工具,它简化了新Spring应用的初始搭建以及开发过程。...
在Spring框架下,结合Shiro和CAS实现SSO的过程主要包括以下步骤: 1. **配置CAS服务器**:首先,你需要搭建一个CAS服务器,这通常涉及到安装和配置CAS服务端应用,如部署CAS服务器的war文件到应用服务器(如Tomcat...
SessionManager 接口管理着所有用户的会话,并可实现分布式会话,适应大型应用的需求。 4. **加密 (Cryptography)**:Shiro 封装了 JDK 中的加密算法,提供了易用的加密工具,用于存储敏感信息,如密码,以保护数据...
在本文中,我们将探讨如何在Java环境中,利用Apache Shiro和JSON Web Tokens (JWT)来实现微信小程序的自定义登录功能。首先,我们要理解微信小程序的登录流程,它通常涉及小程序端调用`wx.login()`获取临时凭证...
描述 "基于maven管理的ssm小demo基础上添加了shiro框架,用登陆做测试。" 提供了项目的基本构建方式以及主要功能。项目是基于Maven构建的,这使得依赖管理和项目构建更加规范和便捷。SSM框架是目前Java Web开发中...
总结来说,本文介绍了如何使用SpringBoot和Shiro实现登录验证码功能,通过自定义的`CaptchaUtil`类生成图形验证码,增强系统安全性,防止机器人自动刷登录。这种验证码生成方法简单且有效,适用于大多数Web应用。
Shiro是Apache的一个安全框架,用于实现身份验证、授权、会话管理和加密等安全功能。在这个系统中,Shiro可能被用来处理用户登录、权限控制以及安全相关的操作,比如QQ登录集成。QQ登录是一种社交登录方式,通常通过...
基础的SSM框架,集成了shiro作为登陆验证和权限管理和swagger作为开接口文档,让开发商专注于业务的开发 1,前一级分离思想 其实前一次分离并不只是只是开发模式,而是网络应用的一种架构模式,之前先使用HTTP或其他...