shiro认证授权

1.shiro配置类
1.1需要配置什么?
创建一个ShiroFilterFactoryBean对象,检测认证(向Bean中传入SecurityManager对象),没有认证的时候应该访问哪个URL地址(setLoginUrl()),哪些资源是可以被匿名访问的(setFilterChainDefinitionMap(LinkedHashMap<String,String>()));

其中,key为url路径的相对地址,value为"anon"表示允许匿名访问的资源,value为"authc"表示需要授权才可以访问的资源
1.2代码示例
@Configuration
public class ShiroConfig {

/**
 * @Bean表示方法的返回值要交给spring管理
 * SecurityManager是shiro框架的核心
 * @return DefaultSecurityManager
 */
@Bean
public SecurityManager securityManager() {
	DefaultSecurityManager seManager = new DefaultWebSecurityManager();
	return seManager;
}

public ShiroFilterFactoryBean shiroFilterFactoryBean() {
	
	ShiroFilterFactoryBean  factoryBean = new ShiroFilterFactoryBean();
	
	LinkedHashMap<String, String> filterMap = new LinkedHashMap<>();//注意为什么拦截器要用LinkedHashMap
	//因为需要认证访问的资源一定要写在可以匿名访问的资源的下面
	
	factoryBean.setSecurityManager(securityManager());
	factoryBean.setLoginUrl("doLoginUI");
	//静态资源允许匿名访问:"anon"
	filterMap.put("/bower_components/**","anon");
	filterMap.put("/build/**","anon");
	filterMap.put("/dist/**","anon");
	filterMap.put("/plugins/**","anon");
	 //除了匿名访问的资源,其它都要认证("authc")后访问
	filterMap.put("/**","authc");
	factoryBean.setFilterChainDefinitionMap(filterMap);
	
	return factoryBean;
}

}

2.认证流程
subject.login(token)提交给SecurityManager,token这里理解为令牌
SecurityManager将信息委托给Authenticator
Authenticator将认证信息交给Realm
Realm查询数据库并封装返回
Authenticator对数据进行比对

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值