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) ;
}
}
相关推荐
spring整合shirospring-data-redis和spring-session-data-redis通过shiro实现单点登录
实现shiro的搭建,实现登陆授权以及增删改查的权限验证功能
本篇文章主要介绍了java shiro实现退出登陆清空缓存,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
SpringBoot整合Shiro后实现免密登录 1,说明一下步骤,需要在原来基础新增三个文件 2,新增CustomToken,重写UsernamePasswordToken免密登录调用方法和密码登录调用方法都在里面。 3,新增...
ssm+shiro实现简单的登陆认证功能,简单明了,适合小白~
SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 ...
IDEA+SpringBoot+shiro:整个shiro的实现过程,可应用于线上产品
本文小编将基于 SpringBoot 集成 Shiro 实现动态uri权限,由前端vue在页面配置uri,Java后端动态刷新权
shiro在web的实现,使用jsp实现,给html实现了登陆测试。
本demo为Spring boot整合shiro,以mybatis plus做dao层交互数据,实现了读取数据库用户数据实现用户登录,权限认证,读取数据库中用户对应的url请求,实现请求的过滤。自定义了relam和过滤器来实现这些功能
nutz基于shiro实现身份认证和权限认证博客源代码
vue+shiro实现前端细颗粒按钮级权限,并且可以实现删除和禁用两种不同模式,里面需要的前置技术包括 :vue\vue的自定义指令\vue的自定义插件\vuex
【SpringBoot】廿三、SpringBoot中整合Shiro实现权限管理.pdf【SpringBoot】廿三、SpringBoot中整合Shiro实现权限管理.pdf【SpringBoot】廿三、SpringBoot中整合Shiro实现权限管理.pdf【SpringBoot】廿三、...
【SpringBoot】廿三、SpringBoot中整合Shiro实现权限管理.docx【SpringBoot】廿三、SpringBoot中整合Shiro实现权限管理.docx【SpringBoot】廿三、SpringBoot中整合Shiro实现权限管理.docx【SpringBoot】廿三、...
Shiro实现登录授权功能
spring+shiro实现身份认证授权,拿过去就可以跑,bb+123456登陆,也可用PasswordHelper类自己改账号及密码 spring+shiro实现身份认证授权,拿过去就可以跑,bb+123456登陆,也可用PasswordHelper类自己改账号及密码
基于SpringBoot+shiro实现数据库的细粒度动态权限管理系统 项目经过严格测试,确保可以运行!源码无需做任何更改! 基于SpringBoot+shiro实现数据库的细粒度动态权限管理系统 项目经过严格测试,确保可以运行!...
Spring springboot,Mybatis、Shiro 实现动态授权, 避免了在使用Shiro时 在系统控制层 加入权限判断进行鉴权处理!
SSM+Shiro实现权限角色控制,+Maven+Tomcat+Mysql,项目可直接在eclipse上跑,数据库表也附件在压缩包中。