shiro架构(外部)
shiro架构(内部)
具体API操作
获取当前的用户对象
Subject currentUser = SecurityUtils.getSubject();
通过当前用户拿到session
Session session = currentUser.getSession();
session.setAttribute("someKey", "aValue");
String value = (String) session.getAttribute("someKey");
if (value.equals("aValue")) {
log.info("Subject = >session [" + value + "]");
}
判断当前的用户是否被认证
!currentUser.isAuthenticated()
获得当前用户的认证
currentUser.getPrincipal()
获得用户是否拥有什么角色
currentUser.hasRole("schwartz")
获得当前用户的权限
currentUser.isPermitted("lightsaber:wield")
注销
currentUser.logout();
springboot集成shiro
环境搭建
导入shiro整合sping的包
<!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-spring -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.9.0</version>
</dependency>
新建config层
@Configuration
public class ShiroConfig {
@Bean
//ShiroFilterFactoryBean 3
public ShiroFilterFactoryBean getShiroFilterFactoryBean(@Qualifier("defaultWebSecurityManager") DefaultWebSecurityManager defaultWebSecurityManager){
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
shiroFilterFactoryBean.setSecurityManager(defaultWebSecurityManager