用springboot写一个登录和退出的功能
时间: 2024-05-07 11:20:46 浏览: 7
好的,下面是一个基于 Spring Boot 的登录和退出功能的示例代码。
首先,我们需要创建一个 UserController 类来处理用户登录和退出的请求。
```java
@RestController
public class UserController {
@PostMapping("/login")
public ResponseEntity<?> login(@RequestBody User user) {
// 在这里实现登录逻辑
// 如果登录成功,可以返回一个包含用户信息的 JSON 对象
// 如果登录失败,可以返回一个包含错误信息的 JSON 对象
return ResponseEntity.ok().build();
}
@GetMapping("/logout")
public ResponseEntity<?> logout() {
// 在这里实现退出逻辑
// 如果退出成功,可以返回一个包含成功信息的 JSON 对象
// 如果退出失败,可以返回一个包含错误信息的 JSON 对象
return ResponseEntity.ok().build();
}
}
```
接下来,我们需要定义一个 User 类来表示用户信息。
```java
public class User {
private String username;
private String password;
// 省略 getter 和 setter 方法
}
```
然后,我们需要在 application.properties 文件中配置数据库连接信息和启用 Spring Security。
```properties
# 数据库连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 启用 Spring Security
spring.security.user.name=admin
spring.security.user.password=123456
```
最后,我们需要添加 Spring Security 配置类来实现身份验证和授权。
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("admin")
.password("{noop}123456")
.roles("USER");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/login").permitAll()
.anyRequest().authenticated()
.and()
.httpBasic()
.and()
.csrf().disable();
}
}
```
其中,configureGlobal 方法用于配置用户信息,这里我们使用了内存中的用户信息。configure 方法用于配置 HTTP 请求的授权规则,这里我们允许 /login 路径的请求不需要授权,其它路径的请求需要授权。
现在我们就完成了基于 Spring Boot 的登录和退出功能的开发。