shiro是一种权限认证框架,实现一个简单的登录鉴权: 1、控制器层: @Controller @RequestMapping("/blogger") public class BloggerController...RequestMapping("/login") public String login(Blogger blogger,HttpServletRequest request){ //shiro...doGetAuthorizationInfo(PrincipalCollection principals) { return null; } /** * 验证当前登录的用户...return authcInfo; }else{ return null; } } } 这里拿到用户名后查询数据库获取正确的blogger登录对象...,构建SimpleAuthenticationInfo认证信息对象,身份判别结果Shiro都会反映在异常中: try { subject.login(token); //身份认证
程序使用Shiro提供的FormAuthenticationFilter过滤器进行登录校验时,我们并不需要自己写登录校验,Shiro会帮我们完成。...今天在进行登录页面开发时,发现点击登录后,无法完成登录校验,Debug发现程序根本不会进到FormAuthenticationFilter的executeLogin方法,百思不得其解。...比如我们的loginUrl为/login,那么我们需要在Shiro的FilterChainDefinitionMap中加入: filterMap.put("/login", "authc"); 真是细节决定成败啊
⑤【Shiro】SpringBoot整合Shiro,实现登录认证 目录结构 Maven坐标导入 准备用于登录校验的数据 数据库表对应的实体类 SpringBoot配置文件 MyBatis-Plus操作数据库的...Mapper接口 Service层,提供一个根据name查询用户的业务方法 自定义Realm,实现自定义登录认证 控制层,使用Shiro进行登录认证 Shiro配置类,使自定义Realm生效,设置拦截范围... shiro-spring-boot-web-starter 1.9.0...进行登录认证 myController: /** * @author .29...; return "登陆失败"; } } } Shiro配置类,使自定义Realm生效,设置拦截范围 ShiroConfig: /** * @author
shiro登录认证过程 登录方法 可以看到已经获取到了username、password和rememberMe ,为了接下来的认证过程,我们需要获取subject对象,也就是代表当前登录用户,并且要将...然后进入else方法执行realm.getAuthenticationInfo(token)方法,继续跟进 this.getCachedAuthenticationInfo(token)这个方法是从shiro...如果是第一次登陆,缓存中肯定没有认证信息,所以会执行this.doGetAuthenticationInfo(token)这个方法, 在执行登录认证的时候需要选择我们自己实现的realm方法
Shiro 1.2开始提供了Jasig CAS单点登录的支持,单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录。...服务器端提供单点登录,多个客户端(子系统)将跳转到该服务器进行登录验证,大体流程如下: 1、访问客户端需要登录的页面http://localhost:9080/ client/,此时会跳到单点登录服务器...service=https://localhost:9443/ client/cas; 2、如果此时单点登录服务器也没有登录的话,会显示登录表单页面,输入用户名/密码进行登录; 3、登录成功后服务器端会回调客户端传入的地址...6、spring-shiro-web.xml配置: Java代码 <bean id="casRealm" class="com.github.zhangkaitao.<em>shiro</em>.chapter13....,<em>登录</em>成功后跳转到?
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。...projects/cas),也可以参考这篇文章(https://www.ibm.com/developerworks/cn/opensource/os-cn-cas/) spring security支持cas,shiro...也支持cas,我最近也在学习shiro,看到一个不错的github项目(shiro实现cas功能),分享给需要的朋友: https://github.com/coder-huang/sso-shiro-cas
登录认证、自定义Realm 1....;否则登录成功 创建自定义的 Realm 类,继承 org.apache.shiro.realm.AuthenticatingRealm类,实现 doGetAuthenticationInfo() 方法...登录认证案例 导入坐标: <!...自定义登录认证、Realm Shiro 默认的登录认证是不带加密的,如果想要实现加密认证需要自定义登录认证,自定义 Realm。 导入坐标: <!...* @create 2024-03-16 19:08 * 1.自定义Realm进行登录认证,配置好后Shiro的Subject.login()方法底层会调用该类的认证方法完成登录认证 * 2.想要自定义的
在某些项目中可能会遇到如每个账户同时只能有一个人登录或几个人同时登录,如果同时有多人登录:要么不让后者登录;要么踢出前者登录(强制退出)。...比如spring security就直接提供了相应的功能;Shiro的话没有提供默认实现,不过可以很容易的在Shiro中加入这个功能。...示例代码基于《第十六章 综合实例》完成,通过Shiro Filter机制扩展KickoutSessionControlFilter完成。...首先来看看如何配置使用(spring-config-shiro.xml) kickoutSessionControlFilter用于控制并发登录人数的 Java代码 ?...<bean id="kickoutSessionControlFilter" class="com.github.zhangkaitao.<em>shiro</em>.chapter18.web.<em>shiro</em>.filter.KickoutSessionControlFilter
一、登录页面 二、编写登录controller 三、编写realm 四、实现结果
密码加密登录是为了提高系统安全性,即使是管理员查看数据库也得不到密码 使用shiro可以很轻松的完成加密及登录操作 加密工具 此工具用于注册时对密码进行加密 public static final String..."WHLH"); System.out.println(password); //加密后的结果 //3bcbb857c763d1429a24959cb8de2593 } 使用shiro...登录 Realm类 @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken...,salt, getName()); } 修改自定义realm配置 加密算法和加密次数要和加密工具参数保持一致 <bean class="org.apache.<em>shiro</em>.authc.credential.HashedCredentialsMatcher
二、导入shiro 相关坐标: org.apache.shiro <artifactId...; import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken...; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.realm.AuthorizingRealm; import...user/*","authc"); shiroFilterFactoryBean.setFilterChainDefinitionMap(filterMap); // 设置登录页面...上面设置user 目录下所有资源的访问均需认证后才可访问,未认证访问时,会自动跳转到登录页面,即表示登录拦截成功。
今天来记录一下Shiro的整合,完成登录校验。...如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面 shiroFilterFactoryBean.setLoginUrl("/login"); // 登录成功后要跳转的链接...* * @author 刘朋 * date 2019-03-12 */ @Api(description = "登录接口") @RestController @RequestMapping...static final Logger LOGGER = LoggerFactory.getLogger(LoginController.class); @ApiOperation(value = "登录...; } return Result.success("登录成功!"); } } 噢耶!完成整合!
最近在做一个小项目,其中认证这块使用shiro+SpringMVC+easyUI,因为easyUI在提交数据的时候使用的是ajax的异步提交,所以shiro在处理数据的时候需要重写FormAuthenticationFilter...successURL中,如果认证失败则会跳转到我们指定的fail地址,而和easyUI一块使用的话通过ajax提交,shiro只需要给调用者返回一个验证的结果就可以了,所以我们需要重写FormAuthenticationFilter...out.flush(); out.close(); } return false; } /** * * 当登录失败...return null; } } shiro的配置文件 ?...,跳转到home页面 location.href="home"; }else{ $.messager.alert('登录失败',JSON.parse(data).message);
当我们将/**设置为authc,即过滤所有的url,必须有登录权限,这个时候当登录成功后,浏览器有时候就会弹出一个下载框,下载“favicon.ico” ?...Paste_Image.png 解决方法 只需要在Shiro的FilterChainDefinitionMap中加入/favicon.ico":"anon"即可!
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。 Shiro框架具有轻便,开源的优点,所以本博客介绍基于Shiro的登录验证实现。...-- Shiro end --> 登录验证控制类实现: package org.muses.jeeplatform.web.controller; import java.util.ArrayList...,使用Shiro框架,做好了登录的权限安全认证, * getRemortIP()方法获取用户登录时的ip并保存到数据库 * @author Nicky * @date 2017年3月15日 */...框架的登录验证,页面发送JSON请求数据, * 服务端进行登录验证之后,返回Json响应数据,"success"表示验证成功 * @param request * @return * @...,Session会话过期,需要重新登录,保证系统安全性 本博客只提供基于Shiro的登录验证实现,具体代码可以去我的github下载:https://github.com/u014427391/jeeplatform
前言 本文假设读者能正常使用Shiro, 并对知道相关类是做什么用的。 这里截取部分代码来追踪, 为了尽可能的简单, 这里没有使用Spring等其他框架, 纯粹的Shiro代码。...使用帐号密码登录, 并创建 Session UsernamePasswordToken trueToken = new UsernamePasswordToken("username",...重头戏身份认证Login 全部准备就绪了, 就开始登录吧subject.login(trueToken)。...可以很容易猜到, Shiro使用了懒加载的方式去加载角色权限。 还是老办法看源码, 看subject.hasRole()方法。...停止 session stopSession(subject); }} 总结 还有一些高级特性, 比如多Realm登陆, 单点登录, Redis持久化Session.
在初识Shiro一文中,我们对Shiro的基本使用已经做了简单的介绍,不懂的小伙伴们可以先阅读上文,今天我们就来看看Shiro中的授权问题。...判断用户是否具备某种角色 先来个方法用来执行登录操作,如下: private void login(String iniFile, String username, String password) {...e.printStackTrace(); } } 这个登录比较简单,我们在上文中有详细介绍。...显式角色 显式角色是一种基于资源的访问权限控制,使用显式角色可以避免上文提到的问题,但是使用显式角色又需要我们自己手动维护用户-角色、角色-权限之间的关系。 OK ,我们先来看一个简单的案例。...OK,以上就是Shiro中简单的授权问题。
1、Shiro是Apache下的一个开源项目,我们称之为Apache Shiro。...shiro属于轻量级框架,相对于security简单的多,也没有security那么复杂。所以我这里也是简单介绍一下shiro的使用。 2、非常简单;其基本功能点如下图所示: ?...或者细粒度的验证某个用户对某个资源是否具有某个权限; Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如...; Run As:允许一个用户假装为另一个用户(如果他们允许)的身份进行访问; Remember Me:记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了。...记住一点,Shiro不会去维护用户、维护权限;这些需要我们自己去设计/提供;然后通过相应的接口注入给Shiro即可。 3、这里我就简单介绍一下springboot和shiro整合与基本使用。
目录 背景 shiro的认证实现 注册登录 背景 在实现认证的时候,shiro有很多的加密算法,比如md5,SHA-1等。我们现在自己写一个工具类,里面是SHA-1的加密,有盐的加密。...; import org.apache.shiro.realm.AuthorizingRealm; import org.apache.shiro.subject.PrincipalCollection...我们还需要在shiro的配置类里面配置一下这个realm。...defaultWebSecurityManager.setCacheManager(ehCacheManager()); return defaultWebSecurityManager; } 以上就实现了工具类的加密的认证 注册登录...也就是在注册代码里面使用了工具类,在登录代码里面也使用了工具类 现在使用的是加密算法是SHA-1,其实还有MD5
本文我们来介绍下基于Shiro的登录认证操作。...登录认证 1.整合shiro 1.1 添加依赖 org.apache.shiro shiro-spring shiroFilter...如果不设置则找与filter-name一致的bean --> targetBeanName shiro..." id="shiro"> <!
领取专属 10元无门槛券
手把手带您无忧上云