shiro 如何实现免密码登录功能

_起风了 2017-10-23 03:34:40
扫码登录的时候需要往框架的shiro内注入token。但是写的注入token 需要密码。密码是加密之后的,不能反编译。
if (!Objects.isNull(userLogin) && userLogin.getStatus().intValue() == 100) {
byte[] salt = Hex.decode(userLogin.getLoginSalt());
return new SimpleAuthenticationInfo(userLogin, userLogin.getLoginPasswd(), ByteSource.Util.bytes(salt), getName());
} else {
throw new UnknownAccountException("用户信息异常");
}

验证密码在这个里面。怎么写才能不需要密码,就能登录。
...全文
2838 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
淡去 2018-01-31
  • 打赏
  • 举报
回复
http://blog.csdn.net/pengqiang9507/article/details/79208365
街头小贩 2017-10-25
  • 打赏
  • 举报
回复 1
引用 3 楼 q1697106750 的回复:
[quote=引用 1 楼 xiaofanku 的回复:] 你说的token是org.apache.shiro.authc.UsernamePasswordToken吗
怎么去跳过密码验证这个地方[/quote] 你的验证部分是自定义的还是使用shiro的,我自已继承了org.apache.shiro.realm.AuthorizingRealm,关于验证的方法

    //验证的真正实现者
    @Override
    protected void assertCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) throws AuthenticationException {
        BbsUsernamePasswordToken authcToken = (BbsUsernamePasswordToken) token;
        String pswd=new String(authcToken.getPassword());
        logger.info("[assert][Shiro]mail:"+authcToken.getUsername()+",pswd:"+pswd+"");
        try{
            ForumMember member = forumMemberService.login(
                authcToken.getUsername(), 
                pswd, 
                new ForumMemberStrategy(
                        authcToken.getIpAddr(), 
                        authcToken.getOperateToken()));
            if(member.getId()>0){
                logger.info("[assert][Shiro] OK");
                return;
            }
        }catch(Exception e){
            if(logger.isDebugEnabled()){
                logger.debug("[Realm][Shiro]member login fail,exception:"+e.getMessage());
            }
        }
        logger.error("[Realm][Shiro]userService get fail");
        throw new AuthenticationException();
    }
街头小贩 2017-10-24
  • 打赏
  • 举报
回复
你说的token是org.apache.shiro.authc.UsernamePasswordToken吗
_起风了 2017-10-24
  • 打赏
  • 举报
回复
引用 1 楼 xiaofanku 的回复:
你说的token是org.apache.shiro.authc.UsernamePasswordToken吗
怎么去跳过密码验证这个地方
_起风了 2017-10-24
  • 打赏
  • 举报
回复
嗯嗯。怎么实现密码验证那个部分,怎么跳过。
阅读目录 1.1 编写目的 1.2 是否开源 1.1 基于RBAC 1.2 数据模型 1.1 登录 1.2 资源信息维护 1.3 角色管理 1.4 组管理 1.5 系统字典维护 1.6 系统信息维护 1.7 日志管理 1.8 操作信息维护 1.9 全局参数维护 1.10 人员信息维护 第一章 引言 1.1 编写目的 使用easyui+ssh2+shiro的权限管理系统,粒度可细化到按钮及菜单级别。目前是第一个稳定版本,可实现基本的权限控制功能,并且可以使用shiro的标签对细粒度的权限进行管理。 Jar包除了几个核心包之外全部使用maven管理。 回到顶部 1.2 是否开源 完全开源费。 第一章 设计思路 回到顶部 1.1 基于RBAC RBAC认为权限授权实际上是Who、What、How的问题。在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What(Which)进行How的操作”。 Who:权限的拥用者或主体(如Principal、User、Group、Role、Actor等等) What:权限针对的对象或资源(Resource、Class)。 How:具体的权限(Privilege,正向授权与负向授权)。 Operator:操作。表明对What的How操作。也就是Privilege+Resource Role:角色,一定数量的权限的集合。权限分配的单位与载体,目的是隔离User与Privilege的逻辑关系. Group:用户组,权限分配的单位与载体。权限不考虑分配给特定的用户而给组。组可以包括组(以实现权限的继承),也可以包含用户,组内用户继承 组的权限。User与Group是多对多的关系。Group可以层次化,以满足不同层级权限控制的要求。 RBAC的关注点在于Role和User, Permission的关系。称为User assignment(UA)和Permission assignment(PA).关系的左右两边都是Many-to-Many关系。就是user可以有多个role,role可以包括多个user。 回到顶部 1.2 数据模型 第一章 系统操作 回到顶部 1.1 登录 部署完成后需要输入: http://localhost:8080/sshpermission 进入登录界面 输入管理员 用户名:admin 密码:admin 进入系统 回到顶部 1.2 资源信息维护 维护系统的资源信息,资源指的是系统中所有的除按钮外的相关信息,比如菜单,首页显示列表等。 回到顶部 1.3 角色管理 维护系统角色信息,可对系统进行分配资源授权和操作授权。 角色维护 资源分配 操作分配 回到顶部 1.4 组管理 维护一组用户的信息,可以跟角色和用户进行组合。可以向组内添加用户,可以给组添加角色。 向组内添加用户 给组授权角色 回到顶部 1.5 系统字典维护 维护系统内的字典数据。 回到顶部 1.6 系统信息维护 维护系统信息,可以设置多个系统,进行多个系统的维护与授权。 回到顶部 1.7 日志管理 维护系统日志,使用AOP进行记录,可对需要维护的部分进行配置。 回到顶部 1.8 操作信息维护 维护操作信息 回到顶部 1.9 全局参数维护 维护全局参数。 回到顶部 1.10 人员信息维护 维护用户的基本信息
源码简介与安装说明: MaxKey(马克思的钥匙)用户单点登录认证系统(Sigle Sign On System),寓意是最大钥匙,是业界领先的企业级IAM身份管理和身份认证产品,支持OAuth 2.0/OpenID Connect、SAML 2.0、JWT、CAS等标准化的开放协议,提供简单、标准、安全和开放的用户身份管理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC权限管理和资源管理等。 MaxKey主要功能: 1、所有应用系统共享一个身份认证系统 2、所有应用系统能够识别和提取ticket信息 3、提供标准的认证接口以便于其他应用集成SSO,安全的移动接入,安全的API、第三方认证和互联网认证的整合。 4、提供用户生命周期管理,支持SCIM 2协议,基于Apache Kafka代理,通过连接器(Connector)实现身份供给同步。 5、认证中心具有平台无关性、环境多样性,支持Web、手机、移动设备等, 如Apple iOS,Andriod等,将认证能力从B/S到移动应用全面覆盖。 6、多种认证机制并存,各应用系统可保留原有认证机制,同时集成认证中心的认证;应用具有高度独立性,不依赖认证中心,又可用使用认证中心的认证,实现单点登录。 7、基于Java平台开发,采用Spring、MySQL、Tomcat、Apache Kafka、Redis等开源技术,支持微服务,扩展性强。 8、许可证 Apache License, Version 2.0,开源费。 源码更新日志: MaxKey单点登录认证系统 更新v2.4.0 动态用户组实现(基于用户属性或机构) 任职机构和兼职机构 登录会话切换的优化 我的应用界面隐藏visible = 0的应用 构建脚本的优化和更新 全新的版本号定义,正式版本jar不再添加 RELEASE 后缀声明,author由shimingxy改为maxkeyTop SAML2.0 SP登录引导的优化 SAML2.0 SP DEMO,案例参见 https://github.com/MaxKeyTop/spring-boot-security-saml-sample docker支持的优化 源代码增加LICENSE声明 JWT的分离成protocols下子项目 密码策略提示参数问题修复 SAML 2.0 Metadata优化 HandlerInterceptorAdapter@deprecated 调整为 AsyncHandlerInterceptor mybatis-jpa升级,添加@Entity和@Transient支持,优化update时字段为null的处理,SQL代码优化 README更新及中文和英文支持 认证失败时,authentication 空指针异常 SAML Metadata URL配置读取 添加组和角色时按登录名查询成员 firefox点击验证码无更新修复 官网内容更新 管理MGT样式调整优化 依赖jar引用、更新和升级
lenos(p为spring boot版本扩展名)一款快速开发模块化脚手架,采用spring boot 2.0.1+spring+SpringMvc+mybatis+shiro+swagger+ehcache+quartz+freemarker+layui技术开发;实现功能有系统模块:菜单管理、用户管理、角色管理,系统监控:系统日志、接口api、sql监控。本项目会一直维护并集成新的技术,给您的开发节约时间成本,本项目拥有非boot版本。 功能说明: 项目目前拥有 1、系统管理:菜单管理、用户管理、角色管理 2、统一查询 pagehelper分页,查询调用BaseServiceImpl show model set数据,传入T,配合xml编写,即可自定义查询。 3、采用shiro技术,可配置化权限管理,精确到按钮(也可以是某一元素)功能分配 4、登录次数校验,超出定义次数后冻结一段时间账号 5、系统监控:系统日志、接口api、系统监控、可配置定时任务 6、前端可配置化定时任务。 7、采用swagger可视化出实时方法格式以及数据属性,采用阿里druid监控sql。 8、工作流程管理:完全实现模块化,无侵入。监听用户角色信息到引擎数据表中 9、流程管理:动态给发布流程分配角色,无需手动写死,灵活可变 10、模块列表:新建、编辑、发布流程,前端实现完全可配置化建立流程图 11、请假流程:提供一个请假示例,让您很快熟悉流程 12、待办任务:个人需要办理的流程任务 13、如果不喜欢工作流,可以直接删除 len-activiti模块 并在len-web/pom.xml、父 pom.xml 删除依赖以及模块,删除application.java 中对activiti的扫描即可完全删除工作流模块。 技术: jdk:1.8 核心框架:spring boot 2.1.9.RELEASE 安全框架:Apache Shiro 工作流引擎:Activiti 数据库连接池:druid 视图框架:spring mvc 持久层框架:MyBatis 模板引擎:freemarker 缓存:redis、ehcache 定时:quartz 2.3.0 前端页面:layui 博客前端:vue、iview ps: lenos承诺永久开源,全部费,无任何收费地方 如果您喜欢lenos,可以clone下来使用,您的star将是本人前进的动力,本项目无丝毫保留开源,如果您有技术疑问,可以加群交流。 如果lenos对您有一点帮助,您可以点个star,就是对作者最大的支持了。 lenos脚手架会一直更新下去,我们的征途是星辰大海 登录账号:admin 密码:123456
jspBB-1.0.0正式版发布了,此版本增加了使用websocket实现通知功能,可以实时的知道关于自己的回答或评论。管理员可以得到整个网站提问、回答或评论的通知,及时为用户解答问题。作为客服系统也是不错的选择。另外还修复了其它一些bug,及新增部分小功能。jspBB 论坛(问答)系统介绍jspBB是一款基于Java/Kotlin的费、开源论坛(问答)系统,仿stackoverflow、quora、知乎的模式,以GPL-2协议开源。使用SpringBoot 2、Mybatis、TypeScript、React、Ant Design 4、Ant Design Pro 5、Thymeleaf、Bootstrap 4等技术开发。jspBB这个名字为了致敬phpBB,系统中并没有使用jsp。当初php、asp、jsp三大互联网技术,唯有jsp一直没有重量级的开源论坛,希望jspBB可以弥补这一缺憾。系统使用SpringBoot2,可以用jar方式启动。后台前端使用React、Ant Design 4、Ant Design Pro 5,基于React Hooks模式。考虑到搜索引擎友好,前台前端使用Thymeleaf、Bootstrap 4,比Freemarker更好用。后续会提供前台前端的API接口,使前台前端也可以使用React、Vue等技术。系统中应用类代码用Kotlin开发,工具类的代码用Java开发(考虑到要在其它项目复用)。Kotlin是高效、安全的开发语言,100%兼容Java,编译后依旧是class文件,依旧运行在JDK中,无需依赖任何其它环境。Kotlin和Java可以相互调用,开发时可以Java、Kotlin混搭,并不需要全部都用Kotlin。在Android中Kotlin已经作为首选开发语言,Spring也早早的加入了Kotlin的支持。实际开发中,Kotlin的空值安全处理,可以大大的增强代码安全性,不用随时随地考虑null值的问题;类似动态语言的语法糖,可以做到想怎样就怎样,代码量少。没有java开发时那种为什么不能这样、为什么不能那样的苦恼,一个简单的想法,需要多行代码才能实现。jspBB 论坛(问答)系统前台功能注册(阿里短信,邮箱)、登录、找回密码、第三方登录(QQ,微信,微博)、第三方存储(腾讯云,七牛云,阿里云)、提问(修改,删除)、回答(修改,删除)、评论(修改,删除)、搜索、支持Markdown(贴图)、支持敏感词过滤。jspBB 论坛(问答)系统后台功能设置:基础设置、注册设置、邮箱设置、上传设置、水印设置、约束设置、敏感词 用户:角色管理、用户组管理、用户管理 内容:问题管理、回答管理、评论管理 系统:短信日志、访问日志 后台列表页面,支持任意字段搜索、排序,隐藏或显示。后台修改页面,支持上一条、下一条显示和编辑,不用列表页、编辑页来回切换。jspBB 论坛(问答)系统环境要求JDK8。 Servlet3.1或更高版本(如Tomcat8.5或更高版本)。 MySQL5.5或更高版本(如需使用MySQL5.0,可将mysql驱动版本替换为5.1.24)。如何连接MySQL8数据库 浏览器:IE11、Edge、Firefox、Chrome。 Kotlin1.3或更高版本。(开发环境需要) Maven3.3或更高版本。(开发环境需要)jspBB 论坛(问答)系统技术栈Kotlin/Java Mybatis SpringBoot 2 Shiro Thymeleaf Bootstrap 4 React TypeScript Ant Design 4 Ant Design Pro 5jspBB 论坛(问答)系统搭建步骤Maven3.3 或更高版本。并配置阿里云Maven仓库镜像。 IntelliJ IDEA 2018.3 或更高版本。需Kotlin1.3支持。 通过pom.xml导入项目。等待jar包下载完成。 在MySQL中创建数据库,字符集选择utf8mb4。 在数据库中执行建库脚本/database/mysql_schema.sql和初始化数据/database/mysql_init.sql。 打开src/main/resources/application.properties,修改数据库连接、用户名、密码:spring.datasource.url spring.datasource.username spring.datasource.password。 点击 IDEA 右上角 Run 按钮,启动程序。 前台地址:http://localhost:8080 默认用户名:admin,默认密码:password。 后台前端基于react开发

10,606

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧