当前位置:实例文章 » JAVA Web实例» [文章]springboot整合spring security的简单入门案例

springboot整合spring security的简单入门案例

发布人:shili8 发布时间:2025-01-27 04:42 阅读次数:0

**Spring Boot 整合 Spring Security 的简单入门案例**

在本文中,我们将一步步地讲解如何使用 Spring Boot 和 Spring Security 来实现一个基本的认证系统。我们将创建一个简单的 Web 应用,用户可以通过用户名和密码来登录。

###依赖配置首先,我们需要在 `pom.xml` 文件中添加必要的依赖:

xml<dependencies>
 <!-- Spring Boot -->
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>

 <!-- Spring Security -->
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-security</artifactId>
 </dependency>

 <!-- MySQL Connector -->
 <dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <scope>runtime</scope>
 </dependency>
</dependencies>


### 配置文件接下来,我们需要创建一个 `application.properties` 文件来配置我们的应用:

propertiesspring.datasource.url=jdbc:mysql://localhost:3306/mydbspring.datasource.username=rootspring.datasource.password=123456spring.jpa.hibernate.ddl-auto=update


### 实体类和 DAO我们需要创建一个 `User` 实体类和一个 `UserDAO` 接口来操作用户数据:

java// User.java@Entitypublic class User {
 @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
 private Long id;
 private String username;
 private String password;

 // getter and setter}

// UserDAO.javapublic interface UserDAO extends JpaRepository {
}


### Service我们需要创建一个 `UserService` 接口来提供业务逻辑:

java// UserService.java@Servicepublic class UserServiceImpl implements UserService {

 @Autowired private UserDAO userDAO;

 @Override public List getAllUsers() {
 return userDAO.findAll();
 }

 @Override public User getUserById(Long id) {
 return userDAO.findById(id).orElse(null);
 }
}


### Controller我们需要创建一个 `UserController` 来提供 RESTful API:

java// UserController.java@RestController@RequestMapping("/api/users")
public class UserController {

 @Autowired private UserService userService;

 @GetMapping public List getAllUsers() {
 return userService.getAllUsers();
 }

 @GetMapping("/{id}")
 public User getUserById(@PathVariable Long id) {
 return userService.getUserById(id);
 }
}


### Spring Security 配置我们需要创建一个 `SecurityConfig` 来配置 Spring Security:

java// SecurityConfig.java@Configuration@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter {

 @Autowired private UserDetailsService userDetailsService;

 @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception {
 auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
 }

 @Bean public PasswordEncoder passwordEncoder() {
 return new BCryptPasswordEncoder();
 }
}


### 登录和注销我们需要创建一个 `LoginController` 来提供登录和注销功能:

java// LoginController.java@RestController@RequestMapping("/api/login")
public class LoginController {

 @Autowired private AuthenticationManager authenticationManager;

 @PostMapping public String login(@RequestBody LoginRequest request) {
 UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(request.getUsername(), request.getPassword());
 Authentication authentication = authenticationManager.authenticate(token);
 if (authentication.isAuthenticated()) {
 return "登录成功";
 } else {
 return "登录失败";
 }
 }

 @GetMapping("/logout")
 public String logout() {
 SecurityContextHolder.clearContext();
 return "注销成功";
 }
}


### 测试我们可以使用 Postman 或其他工具来测试我们的应用:

* GET /api/users:获取所有用户列表* GET /api/users/{id}:获取指定用户信息* POST /api/login:登录系统* GET /api/login/logout:注销系统以上就是 Spring Boot 整合 Spring Security 的简单入门案例。通过这个案例,我们可以了解如何使用 Spring Boot 和 Spring Security 来实现一个基本的认证系统。

其他信息

其他资源

Top