继上篇之后​​入门​

搭建环境

依赖

<!--需要导入shiro的spring的整合包-->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.4.1</version>
</dependency>
<!--thymeleaf模板-->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

新建一个config包

包下新建一个ShiroConfig类


这个类的顺序是从下往上写 ,下类写完,上类需要就调用它


@Configuration
public class ShiroConfig {

//ShiroFilterFactoryBean 过滤对象
@Bean
public ShiroFilterFactoryBean getShiroFilterFactoryBean(@Qualifier("securityManager") DefaultWebSecurityManager defaultWebSecurityManager){
ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
//设置安全管理器
bean.setSecurityManager(defaultWebSecurityManager);

return bean;
}

//DefaultWebSecurityManager 安全对象
@Bean(name = "securityManager")
public DefaultWebSecurityManager defaultWebSecurityManager(@Qualifier("userRealm") UserRealm userRealm){
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
//关联userRealm
securityManager.setRealm(userRealm);
return securityManager;
}

//创建realm对象,需要自定义 先有这一步 因为 DefaultWebSecurityManager 需要这个
@Bean
public UserRealm userRealm(){
return new UserRealm();
}
}

新建一个UserRealm

//自定义的UserRealm    需要 继承extends AuthorizingRealm
public class UserRealm extends AuthorizingRealm {

@Autowired
UserService userService;
//授权
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
System.out.println("执行了=>授权doGetAuthorizationInfo");
return null;
}

//认证
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
System.out.println("执行了=>认证doGetAuthenticationInfo");
return null;
}
}

编写拦截页面


在resources下的templates包下新建一个user包,在user新建两个html页面:分别为 add.html,update.html
resources > templates > user > add.html,update.html



add和update内容可以写add和update标识一下


写index.html

Title

首頁


add update

编写Controller

@Controller
public class MyController {
@RequestMapping({"/","/index"})
public String toIndex(Model model){
model.addAttribute("msg","hello");
return "index";
}

@RequestMapping("/user/add")
public String add(){
return "user/add";
}

@RequestMapping("/user/update")
public String update(){
return "user/update";
}
}

测试


输入localhost:8080/进入到首页 点击add进入


SpringBoot+Shiro环境搭建_spring