怎么搭建一个springboot项目并拦截器编写登录接口
时间: 2023-05-12 13:07:07 浏览: 130
你可以按照以下步骤搭建一个Spring Boot项目并编写登录接口:
1. 打开IDE,创建一个新的Spring Boot项目。
2. 在pom.xml文件中添加Spring Security和Thymeleaf依赖。
3. 创建一个登录页面,使用Thymeleaf模板引擎渲染页面。
4. 创建一个控制器类,处理登录请求并返回登录页面。
5. 创建一个拦截器类,拦截所有请求并检查用户是否已登录。
6. 在Spring Security配置文件中配置登录认证和授权规则。
7. 运行项目,访问登录页面并输入正确的用户名和密码即可登录。
以下是一个简单的示例代码:
1. pom.xml文件中添加依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
```
2. 创建一个登录页面:
```
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Login Page</title>
</head>
<body>
<h1>Login Page</h1>
<form th:action="@{/login}" method="post">
<div>
<label for="username">Username:</label>
<input type="text" id="username" name="username" />
</div>
<div>
<label for="password">Password:</label>
<input type="password" id="password" name="password" />
</div>
<div>
<button type="submit">Login</button>
</div>
</form>
</body>
</html>
```
3. 创建一个控制器类:
```
@Controller
public class LoginController {
@GetMapping("/login")
public String login() {
return "login";
}
}
```
4. 创建一个拦截器类:
```
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
if (session.getAttribute("user") == null) {
response.sendRedirect("/login");
return false;
}
return true;
}
}
```
5. 在Spring Security配置文件中配置登录认证和授权规则:
```
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user").password("{noop}password").roles("USER");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/login").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/")
.permitAll()
.and()
.logout()
.permitAll();
}
}
```
6. 运行项目,访问登录页面并输入正确的用户名和密码即可登录。
注意:以上代码仅供参考,实际项目中需要根据具体需求进行修改和完善。
阅读全文