shiro 的类

security manage: 安全管理器,对主体进行认证授权
Authenticator: 认证器
realm: 数据源,从数据源存取认证和授权相关的数据

UnknowAccountException 不存在用户异常
IncorrectCredentialsException 错误凭证异常

1.提供ini配置文件创建 Security manager
2.通过 subject的login方法提交认证
内部通过ModularRealmAuthenticator 拿着 token和 ini文件所配置用户名和密码的进行认证, ModularRealmAuthenticator 返回null,说明用户不存在
抛出异常

在这里插入图片描述

后期补充

shiro认证流程

在这里插入图片描述提交表单封装到 subject ,然后 交给 shiro认证
在这里插入图片描述
Subject currentUser = SecurityUtils.getSubject()

Session session = currentUser.getSession();

currentUser.getPrincipal()

currentUser.hasRole(“teacher”)
currentUser.isPermitted(“ligntsaber:wield”)
currentUser.logout()

官方文档

关于授权方面也是重点

filterMap.put("/user/add",“perms[user:add]”);

user 必须有 add权限,才能进入,否则会报 401

在这里插入图片描述

在这里插入图片描述

Shiro的配置可以通过继承org.apache.shiro.spring.config.ShiroAnnotationProcessorConfiguration来实现。这个提供了Shiro的注解处理器,可以将Shiro的注解自动注册到Spring容器中。 下面是一个简单的Shiro配置的示例: @Configuration public class ShiroConfig { @Bean public ShiroFilterFactoryBean shiroFilterFactoryBean(DefaultWebSecurityManager securityManager) { ShiroFilterFactoryBean filterFactoryBean = new ShiroFilterFactoryBean(); filterFactoryBean.setSecurityManager(securityManager); Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>(); filterChainDefinitionMap.put("/login", "anon"); filterChainDefinitionMap.put("/**", "authc"); filterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); return filterFactoryBean; } @Bean public DefaultWebSecurityManager securityManager(Realm realm) { DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); securityManager.setRealm(realm); return securityManager; } @Bean public Realm realm() { return new MyRealm(); } @Bean public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) { AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor(); advisor.setSecurityManager(securityManager); return advisor; } @Bean public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() { DefaultAdvisorAutoProxyCreator creator = new DefaultAdvisorAutoProxyCreator(); creator.setProxyTargetClass(true); return creator; } } 这个配置中定义了ShiroFilterFactoryBean、DefaultWebSecurityManager、Realm、AuthorizationAttributeSourceAdvisor和DefaultAdvisorAutoProxyCreator这些bean,它们分别用于配置Shiro的过滤器、安全管理器、认证和授权的数据源、授权注解处理器和AOP代理创建器。 在这个示例中,ShiroFilterFactoryBean用于配置Shiro的过滤器链,将所有请求都需要认证通过才能访问;DefaultWebSecurityManager用于配置Shiro的安全管理器,将自定义的Realm注入;Realm用于配置认证和授权的数据源,这里使用了自定义的MyRealm;AuthorizationAttributeSourceAdvisor和DefaultAdvisorAutoProxyCreator用于配置Shiro的注解处理器和AOP代理创建器,将Shiro的授权注解自动注册到Spring容器中。 需要注意的是,如果使用了Shiro的注解处理器,还需要在Spring的配置上添加@EnableAspectJAutoProxy注解,以开启AOP代理功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值