最近想要多学习一些权限管理的东西,以前用SpringSecurity,现在学一学Shiro。因为在网上查的资料都是写好的Demo,直接用可以但是不利与学习,我就自己参照网上的Shiro教程和SpringBoot集成Shiro的项目,一步步的自己搭建项目。

  首先我们使用SpringBoot构建一个带简单登录功能Web应用。

  pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.3.RELEASE</version>
</parent>

<dependencies>
    <!-- spring web 默认集成tomcat-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- thmleaf模板依赖. -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.2</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
View Code

  Application和Controller

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
View Code
 1 @Controller
 2 public class HomeController {
 3 
 4     @RequestMapping(value = {"/", "/index"}, method = RequestMethod.GET)
 5     public String index() {
 6         return "index";
 7     }
 8     @RequestMapping(value = "/login", method = RequestMethod.GET)
 9     public String loginGet(Model model) {
10         model.addAttribute("msg", "请登录");
11         return "login";
12     }
13     @RequestMapping(value = "/login", method = RequestMethod.POST)
14     public String loginPost(Model model, String username, String password) {
15         if ("admin".equals(username) && "123456".equals(password)) {
16             return "index";
17         } else {
18             model.addAttribute("msg", "登录失败");
19             return "login";
20         }
21     }
22     @RequestMapping(value = "/logout", method = RequestMethod.GET)
23     public String logout() {
24         return "redirect:login";
25     }
26 }
View Code

  最后加上登录页面和登录成功页面

<!—index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>welcome</title>
</head>
<body>
欢迎登录网页 <a href="/logout">点击退出</a>

</body>
</html>
View Code
<!—login.html-->
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
<h5 th:text="'提示消息:'+${msg}"></h5>
<form action="login" method="post">
    <p>账号:<input type="text" name="username"/></p>
    <p>密码:<input type="text" name="password"/></p>
    <p><input type="submit" value="登录"/></p>
</form>
</body>
</html>
login.html

启动服务就可以测试登录效果了。

到这里Web环境就搭建好了,下一章将Shiro继承进去,替代现有的登录功能

GitHub地址:https://github.com/StarkTan/SpringBootShiro

posted on 2018-09-08 10:07  Stark_Tan  阅读(1012)  评论(0编辑  收藏  举报