0

0

Java权限框架介绍:Shiro的统一认证授权

php是最好的语言

php是最好的语言

发布时间:2018-08-09 17:07:00

|

3795人浏览过

|

来源于php中文网

原创

shiro的统一认证授权

Shiro是Apache下面的一个简单,易用的Java权限框架,对于单体应用来讲,Shiro完全能够极好的,快速的满足权限的需求,所以一般在做项目的时候,Shiro都会成为开发者的首选。

可是,如果你需要做第二个,第三个,第n个应用,同样需要相同的认证、授权时,可能就需要对Shiro进行一定的扩展或者是集成其它框架,才能很好的满足你的需求了。

Shiro是如何进行认证授权

Shiro本身并没有帮你实现认证、授权,但Shiro很好的定义了权限相关的一些概念,让你完成具体的实现

立即学习Java免费学习笔记(深入)”;

  • 认证
    在Shiro里,完成认证一般是这样的subject.login(token),Subject代表一个用户,Token代表一个用户请求授权时提交的授权信息,通过AuthenticatingRealm.doGetAuthenticationInfo()获取到当前Subject的一些信息,比如Principals,Credentials,校验提交的token,如果登录成功,保存当前登录用户

  • 授权
    在Shiro里,权限控制一般是这样的@RequiresPermissions,当用户访问受保护资源的时候,Shiro会通过AuthorizingRealm.doGetAuthorizationInfo(),从当前认证通过Subject的Principals里获取用户的权限,判断用户是否能访问该资源

在Shiro里,通过实现Realm来完成上面2件事情,当你时单体应用的时候,非常简单就能完成应用的认证授权。

但是当你有多个应用,需要复用同一套用户以及权限信息时该怎么做呢,可以复用Realm,用户权限在同一个db中,这样的话是可以实现的,但是耦合太高,不同的应用必须要接入同一个数据源才行;或者可以把用户权限相关的DAO剥离出来,作为RPC或Rest调用,也可以实现;但是更好的方式是把认证授权整个剥离出来,单独作为认证授权服务

基于shiro的统一认证授权

为了实现统一认证授权,Shiro有CasFilter,可以集成CAS,但是CAS又是另外一套框架,较为重,有单独的学习成本,所以这里介绍一种更简单,轻量,易用的,基于Shiro的认证授权服务shiro-uaa

认证授权流程

  1. 用户请求受保护资源Resource Server

  2. Resource Server判断用户是否已经登录

  3. 如果没有登录,Resource Server引导用户到UAA Server进行登录

    千博企业网站管理系统静态HTML2009 Build 0601
    千博企业网站管理系统静态HTML2009 Build 0601

    千博企业网站管理系统静态HTML搜索引擎优化单语言个人版介绍:系统内置五大模块:内容的创建和获取功能、存储和管理功能、权限管理功能、访问和查询功能及信息发布功能,安全强大灵活的新闻、产品、下载、视频等基础模块结构和灵活的框架结构,便捷的频道管理功能可无限扩展网站的分类需求,打造出专业的企业信息门户网站。周密的安全策略和攻击防护,全面防止各种攻击手段,有效保证网站的安全。系统在用户资料存储和传递中,

    下载
  4. 用户在UAA Server登录,如果登录成功,UAA Server返回code给用户,并引导用户到之前访问的Resource Server

  5. Resource Server用code到UAA Server获取access-token,token包含用户授权信息

  6. Resource Server验证accessToken是否合法,如果合法,在Resource Server保存用户信息

如下图:

1.png

使用

  • auth-server

  1. 引用maven

  2. 实现自己的登录

  • resource-server

    1. 引用maven

    2. 和shiro一样,使用相关注解进行权限控制

    基本上开箱即用,目前auth-server只是作为jar包提供,需要自己实现登录逻辑,后续会有可部署服务

    shiro-uaa具体的相关说明介绍可以查看项目地址

    相关推荐:

    shiro授权实现详解

    相关文章

    java速学教程(入门到精通)
    java速学教程(入门到精通)

    java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    菜鸟裹裹入口以及教程汇总
    菜鸟裹裹入口以及教程汇总

    本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

    0

    2026.01.22

    Golang 性能分析与pprof调优实战
    Golang 性能分析与pprof调优实战

    本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

    9

    2026.01.22

    html编辑相关教程合集
    html编辑相关教程合集

    本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

    56

    2026.01.21

    三角洲入口地址合集
    三角洲入口地址合集

    本专题整合了三角洲入口地址合集,阅读专题下面的文章了解更多详细内容。

    51

    2026.01.21

    AO3中文版入口地址大全
    AO3中文版入口地址大全

    本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

    397

    2026.01.21

    妖精漫画入口地址合集
    妖精漫画入口地址合集

    本专题整合了妖精漫画入口地址合集,阅读专题下面的文章了解更多详细内容。

    118

    2026.01.21

    java版本选择建议
    java版本选择建议

    本专题整合了java版本相关合集,阅读专题下面的文章了解更多详细内容。

    3

    2026.01.21

    Java编译相关教程合集
    Java编译相关教程合集

    本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

    16

    2026.01.21

    C++多线程相关合集
    C++多线程相关合集

    本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

    11

    2026.01.21

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Laravel---API接口
    Laravel---API接口

    共7课时 | 0.6万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号