shiro mgt包下DefaultSubjectFactory类

2023-10-20 15:10

本文主要是介绍shiro mgt包下DefaultSubjectFactory类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2021SC@SDUSC
DefaultSubjectFactory类图如下:
在这里插入图片描述

创建DelegatingSubject 实例的默认SubjectFactory实现。
简单来说就是通过工厂模式产生DelegatingSubject实例。

该类只有两个方法:

1.createSubject

public Subject createSubject(SubjectContext context) {SecurityManager securityManager = context.resolveSecurityManager();Session session = context.resolveSession();boolean sessionCreationEnabled = context.isSessionCreationEnabled();PrincipalCollection principals = context.resolvePrincipals();boolean authenticated = context.resolveAuthenticated();String host = context.resolveHost();return new DelegatingSubject(principals, authenticated, host, session, sessionCreationEnabled, securityManager);}

通过传入的上下文对象context来创建新的DelegatingSubject对象,典型的工厂模式应用。

2.newSubjectInstance

protected Subject newSubjectInstance(PrincipalCollection principals, boolean authenticated, String host,Session session, SecurityManager securityManager) {return new DelegatingSubject(principals, authenticated, host, session, true, securityManager);}

函数作用域为protected,留给子类继承,如果需要实例化自定义 Subject 类,就直接覆盖 SubjectContext。

总结

DefaultSubjectFactory类是工厂,createSubject函数通过context对象创建新的DelegatingSubject实例,newSubjectInstance可以通过自定义的参数来创建DelegatingSubject实例

这篇关于shiro mgt包下DefaultSubjectFactory类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/247898

相关文章

shiro 学习笔记

权限系统: 分配权限(把对某些安全实体的某些权限分配给某些人员的过程) 验证权限(判断某个人员或程序对某个安全实体是否拥有某个或某些权限的过程) 安全实体:比如数据,资源。 权限:比如查看,修改 权限的继承性:安全实体的包含性,比如大楼里面的房间。 权限最近匹配原则:和包含类似,里面没有权限控制,像外层找,找到最近的。 shiro 的作用:认证,授权,加密,会话。 subj

怎么处理整合了shiro的应用的RPC接口鉴权问题

这篇文章分享一下:当一个服务提供者整合了shiro安全框架来实现权限访问控制时,服务消费者通过feign请求服务提供者的接口时的鉴权不通过问题。 问题描述 博主有一个项目pms(权限管理系统),使用了shiro框架来实现鉴权功能,使用的是shiro内置的perms过滤器。  而服务消费者端,通过feign访问RPC接口,很显然,由于是不同的项目,鉴权肯定是失败的。 pac

【Shiro】Apache Shiro架构之实际运用(整合到Spring中)

Shiro系列文章:  【Shiro】Apache Shiro架构之身份认证(Authentication)  【Shiro】Apache Shiro架构之权限认证(Authorization)  【Shiro】Apache Shiro架构之集成web  【Shiro】Apache Shiro架构之自定义realm 写在前面:前面陆陆续续对Shiro的使用做了一些总结,如题,这篇博文

【Shiro】Apache Shiro架构之自定义realm

Shiro系列文章:  【Shiro】Apache Shiro架构之身份认证(Authentication)  【Shiro】Apache Shiro架构之权限认证(Authorization)  【Shiro】Apache Shiro架构之集成web  【Shiro】Apache Shiro架构之实际运用(整合到Spring中)       之前写的博客里都是使用.ini文件来获取信

【Shiro】Apache Shiro架构之权限认证(Authorization)

Shiro系列文章:  【Shiro】Apache Shiro架构之身份认证(Authentication)  【Shiro】Apache Shiro架构之集成web  【Shiro】Apache Shiro架构之自定义realm  【Shiro】Apache Shiro架构之实际运用(整合到Spring中)       上一篇博文总结了一下Shiro中的身份认证,本文主要来总结一下S

shiro整合MP的springboot案例与详解

一、准备数据库 数据库需要准备三个表,一个user表,一个role表,一个permission表。 CREATE TABLE `user` (`id` INT NOT NULL,`username` VARCHAR(100) DEFAULT NULL,`password` VARCHAR(100) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB

SpingBoot集成shiro,MyRealm中无法@Autowired注入Service的问题

网上说了很多诸如是Spring加载顺序,shiroFilter在Spring自动装配bean之前的问题,其实也有可能忽略如下低级错误。 在ShiroConfiguration中要使用@Bean在ApplicationContext注入MyRealm,不能直接new对象。 道理和Controller中调用Service一样,都要是SpringBean,不能自己new。 错误方式: @Bean

【shiro】shiro学习笔记3-散列功能

对于密码,有很多种加密方式散列是其中 最常用的,shiro提供了直接支持。 环境 <dependencies><!-- shiro --><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId><version>1.2.4</version></dependency><!--日志

【shiro】shiro学习笔记2-自定义realm

上一篇中使用的realm是shiro自带的realm,SecurityManager调用了IniRealm来进行认证。但开发中大部分是要自己实现realm的逻辑的 环境 jar包 pom.xml <dependencies><!-- shiro --><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core

【shiro】shiro学习笔记1-shiro初识

认证流程环境代码总结 认证流程 Created with Raphaël 2.1.0 Start 构造SecurityManager环境 Subject.login()提交认证 SecurityManager.login()执行认证 Authenticator执行认证 Realm根据身份获取认证信息