springboot 验证登录
时间: 2023-07-01 20:28:32 浏览: 82
对于 Spring Boot 应用程序的登录验证,可以使用 Spring Security 框架来实现。以下是一些基本步骤:
1. 在 pom.xml 文件中添加 Spring Security 依赖项:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
```
2. 创建一个继承自 WebSecurityConfigurerAdapter 的配置类,并重写 configure 方法,设置登录验证规则:
```java
@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("/").permitAll()
.antMatchers("/login").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/home")
.permitAll()
.and()
.logout()
.permitAll();
}
}
```
上述代码中,configureGlobal 方法配置了一个 in-memory 用户存储,用户名为 user,密码为 password。configure 方法中定义了登录验证规则,允许访问根路径和 /login,其他请求需要进行身份验证。formLogin 方法指定了登录页面和默认成功后跳转的页面,logout 方法指定了退出登录的处理。
3. 创建一个登录页面和相应的控制器:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login Page</title>
</head>
<body>
<h2>Login Page</h2>
<form th:action="@{/login}" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username" required autofocus><br><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required><br><br>
<button type="submit">Login</button>
</form>
</body>
</html>
```
```java
@Controller
public class LoginController {
@GetMapping("/login")
public String showLoginForm() {
return "login";
}
}
```
上述代码中,showLoginForm 方法返回一个名为 login 的 Thymeleaf 模板,该模板显示了一个带有用户名和密码字段的登录表单。LoginController 控制器处理 /login 请求,并返回 login 模板。
4. 在应用程序的主类中添加 @EnableWebSecurity 注解,启用 Spring Security 功能。
```java
@SpringBootApplication
@EnableWebSecurity
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
这就是一个基本的 Spring Boot 应用程序登录验证的实现方法。当用户访问受保护的资源时,系统将自动重定向到登录页面,用户输入正确的用户名和密码后,将被重定向到默认成功页面。
阅读全文