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); //身份认证
qq(HttpSession session){ //QQ互联中的回调地址 String backUrl = http + “/qq/callback”; //用于第三方应用防止CSRF攻击 String...request) throws Exception { HttpSession session = request.getSession(); //qq返回的信息:http://graph.qq.com...Access Token String backUrl = http + “/qq/callback”; String url = “https://graph.qq.com/oauth2.0/token...://graph.qq.com/user/get_user_info?..._2”,(String)jsonObject.get(“figureurl_qq_2”)); //大小为100*100像素的QQ头像URL return “redirect:/home”; } } 发布者
⑤【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>成功后跳转到?
在APP开发过程中,时常会用到第三方账号登录体系。 下面,简要说明QQ的第三方登录体系在Android平台上的运用。...申请APPID 进入QQ互联的官网,http://connect.qq.com/ 在管理中心中创建移动应用。 ? 创建完成后,可以得到APPID。 ?...创建登录接口 所有的SDK接口调用,都会传入一个回调,用以接收SDK返回的调用结果。...回调的主要接口有两种: (1) IUiListener:调用SDK已经封装好的接口时,例如:登录、快速支付登录、应用分享、应用邀请等接口。...在这里创建IUiListener接口实现相应的登录授权操作: private void onClickLogin() { if (!
单点登录(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 四、实现结果
准备工作 1.云服务器 2.备案的域名 3.本地调试需要修改hosts文件,将域名映射到127.0.0.1 一、申请QQ互联,并成为开发者 QQ互联:https://connect.qq.com/index.html...登录后,点击头像,进入认证页面,填写信息,等待审核。...yml配置 server: port: 80 qq: oauth: http: //QQ互联中填写的网站地址 导入pom依赖 登录页...QQ授权登录 home.html <!
一,申请QQ互联 申请地址:https://connect.qq.com/index.html 1,填写个人信息和网站信息后审核,确保审核通过后进行下一步。...1,properties或yml配置 PlainBashC++C#CSSDiffHTML/XMLJavaJavascriptMarkdownPHPPythonRubySQL #qq互联 qq.oauth.http.../api/qq/callback"; String backUrl = "https://zhangweicheng.xyz/api/qq/callback"; //用于第三方应用防止CSRF攻击...登录 qqBtn(){ this....console.error(error) }) }, } 到此差不多结束了,明天又要上班咯;再顺便说一句:由于我的数据库用户表刚开始没有考虑到QQ登录的用户,所以赶紧连夜加班
最近做一个登录的界面,我脑子里一下就想到QQ的登录界面,简单,美观,所以就找了些资料实现了下,现在整理下 先来看下效果图 1.首先是布局文件XML文件,不解释直接上 1>主界面 1 <RelativeLayout...this.mPopupWindow.setBackgroundDrawable(new BitmapDrawable()); 89 90 } 91 92 /** 93 * 获取登录用户名数据...3); 120 } 121 break; 122 case R.id.login_but_landing:// 登录按钮事件...123 // 登录成功将数据保存到SQLite中 124 ContentValues values = new ContentValues
密码加密登录是为了提高系统安全性,即使是管理员查看数据库也得不到密码 使用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("登录成功!"); } } 噢耶!完成整合!
QQ登陆 3.1. 实名认证 QQ登录我们对接的是QQ互联,地址:https://connect.qq.com ,首先需要注册成为开发者并实名认证,需要手持身份证照片,具体就不讲了。 3.2....引导用户登录 这里可以下载一些视觉素材,在页面合适位置放一个QQ登录按钮,点击时引导用户进入授权页面: ?...获取openId 根据accessToken调接口获取用户的openId,特别注意这个openId是相对于QQ号+appId唯一的,换句话说同一个QQ号登录2个不同appId时获取到的openId是不同的...顺便说一句,QQ登录的相关接口做的还真够“随便”的,全部都是最简单的get请求,所以对接起来非常顺利。 微信搜索 Web项目聚集地 获取更多实战教程。...QQ互联有个特大的bug,有时候显示已登录但是点击授权管理一直报错,此时只需要退出重新登录即可; 授权之后用户可能会在过期之前提前取消授权; 微信搜索 Web项目聚集地 获取更多实战教程。
这几天在项目上面实现qq登录的功能,当功能做好后发现,同一个qq号登录之后腾讯返回的openid并不一样。。。。...(天啦噜啊~)然后查询文档以及咨询客服才知道注册申请时是有一个固定的套路的(不得不说,如今做什么都讲究套路啊~),由于腾讯的qq登录申请分两个平台,一个QQ互联,一个是腾讯开发者平台,我们的网站qq登录是在...QQ互联上申请的,移动端是在腾讯开放平台申请的,然后就悲剧啦!...出现同一qq用户在不同端登录,分别创建了不同的账户信息(就是因为返回的openid不同),这个问题解决的方法是向腾讯发送申请邮件将移动端和pc端的用户标识同一起来,申请通过之后你会获得一个 unionid...链接地址为: http://wiki.connect.qq.com/%E5%BC%80%E5%8F%91%E8%80%85%E5%8F%8D%E9%A6%88 其实并不是非要进行打通才可以,再我们创建应用的时候可以将三端
QQ登陆 3.1. 实名认证 QQ登录我们对接的是QQ互联,地址:https://connect.qq.com ,首先需要注册成为开发者并实名认证,需要手持身份证照片,具体就不讲了。 3.2....引导用户登录 这里可以下载一些视觉素材,在页面合适位置放一个QQ登录按钮,点击时引导用户进入授权页面: 代码: function openWindow(url, width, height) {...获取openId 根据accessToken调接口获取用户的openId,特别注意这个openId是相对于QQ号+appId唯一的,换句话说同一个QQ号登录2个不同appId时获取到的openId是不同的...顺便说一句,QQ登录的相关接口做的还真够“随便”的,全部都是最简单的get请求,所以对接起来非常顺利。 微信搜索 Web项目聚集地 获取更多实战教程。...QQ互联有个特大的bug,有时候显示已登录但是点击授权管理一直报错,此时只需要退出重新登录即可; 授权之后用户可能会在过期之前提前取消授权; 微信搜索 Web项目聚集地 获取更多实战教程。
QQ登陆 3.1. 实名认证 QQ登录我们对接的是QQ互联,地址:https://connect.qq.com ,首先需要注册成为开发者并实名认证,需要手持身份证照片,具体就不讲了。 3.2....引导用户登录 这里可以下载一些视觉素材,在页面合适位置放一个QQ登录按钮,点击时引导用户进入授权页面: ?...获取openId 根据accessToken调接口获取用户的openId,特别注意这个openId是相对于QQ号+appId唯一的,换句话说同一个QQ号登录2个不同appId时获取到的openId是不同的...顺便说一句,QQ登录的相关接口做的还真够“随便”的,全部都是最简单的get请求,所以对接起来非常顺利。...QQ互联有个特大的bug,有时候显示已登录但是点击授权管理一直报错,此时只需要退出重新登录即可; 授权之后用户可能会在过期之前提前取消授权; 相关文档官网已经写得比较细了,但是比较乱:http:
领取专属 10元无门槛券
手把手带您无忧上云