小视频网站开发流程图,成都私人视频网站制作平台,网页游戏开发软件,海口智能建站价格1.Java安全框架除了spring家族另一个就是shiro框架
不过最近还有一个国产框架很好用#xff1a;Sa-Token 添加链接描述#xff0c;想了解的小伙伴可以去look look
shiro 官方文档
(https://shiro.apache.org/)
1. 学习教程 参考 (https://www.w3cschool.cn/shiro/)
Apac…1.Java安全框架除了spring家族另一个就是shiro框架
不过最近还有一个国产框架很好用Sa-Token 添加链接描述想了解的小伙伴可以去look look
shiro 官方文档
(https://shiro.apache.org/)
1. 学习教程 参考 (https://www.w3cschool.cn/shiro/)
Apache Shiro 是 Java 的一个安全框架。目前使用 Apache Shiro 的人越来越多因为它相当简单对比 Spring Security可能没有 Spring Security 做的功能强大但是在实际工作时可能并不需要那么复杂的东西所以使用小而简单的 Shiro 就足够了。对于它俩到底哪个好这个不必纠结能更简单的解决项目问题就好了。
1.Authentication身份认证 / 登录验证用户是不是拥有相应的身份
2.Authorization授权即权限验证验证某个已认证的用户是否拥有某个权限即判断用户是否能做事情常见的如验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限
3.Session Management会话管理即用户登录后就是一次会话在没有退出之前它的所有信息都在会话中会话可以是普通 JavaSE 环境的也可以是如 Web 环境的
4.Cryptography加密保护数据的安全性如密码加密存储到数据库而不是明文存储
5.Web SupportWeb 支持可以非常容易的集成到 Web 环境Caching缓存比如用户登录后其用户信息、拥有的角色 / 权限不必每次去查这样可以提高效率
Concurrencyshiro 支持多线程应用的并发验证即如在一个线程中开启另一个线程能把权限自动传播过去 Testing提供测试支持 Run As允许一个用户假装为另一个用户如果他们允许的身份进行访问 Remember Me记住我这个是非常常见的功能即一次登录后下次再来的话不用登录了。
Subject主体代表了当前 “用户”这个用户不一定是一个具体的人与当前应用交互的任何东西都是 Subject如网络爬虫机器人等即一个抽象概念所有 Subject 都绑定到 SecurityManager与 Subject 的所有交互都会委托给 SecurityManager可以把 Subject 认为是一个门面SecurityManager 才是实际的执行者
SecurityManager安全管理器即所有与安全有关的操作都会与 SecurityManager 交互且它管理着所有 Subject可以看出它是 Shiro 的核心它负责与后边介绍的其他组件进行交互如果学习过 SpringMVC你可以把它看成 DispatcherServlet 前端控制器
Realm域Shiro 从 Realm 获取安全数据如用户、角色、权限就是说 SecurityManager 要验证用户身份那么它需要从 Realm 获取相应的用户进行比较以确定用户身份是否合法也需要从 Realm 得到用户相应的角色 / 权限进行验证用户是否能进行操作可以把 Realm 看成 DataSource即安全数据源。
1.添加依赖 dependencygroupIdorg.apache.shiro/groupIdartifactIdshiro-core/artifactIdversion1.2.2/version/dependency
2.创建配置信息用户的信息
[users]
jiangnan123456
huangchao9521
3.编写认证代码 sample demo Scanner scanner new Scanner(System.in);System.out.println(输入用户名);String userName scanner.next();System.out.println(输入密码);String pwd scanner.next();//1.创建安全管理器IniSecurityManagerFactory factory new IniSecurityManagerFactory(classpath:shiro.ini);SecurityManager securityManager factory.getInstance();SecurityUtils.setSecurityManager(securityManager);//2.创建主体Subject subject SecurityUtils.getSubject();AuthenticationToken userToken new UsernamePasswordToken(userName, pwd);try {//3.认证subject.login(userToken);System.out.println(验证成功);} catch (AuthenticationException e) {e.printStackTrace();System.out.println(验证失败);}4.通过跟踪源码加深理解菜菜的我画了一个草图大佬就别看笑话了~~~