<dependencies> <!-- Spring Core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <!-- Spring Security --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> <version>${spring-security.version}</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>${spring-security.version}</version> </dependency> </dependencies> public class User { private Long id; private String username; private String password; } @Service public class UserService { @Autowired private UserRepository userRepository; public User registerUser(User user) { return userRepository.save(user); } public User authenticateUser(String username, String password) { User user = userRepository.findByUsername(username); return null; } return new org.springframework.security.core.userdetails.User(user.getUsername(), user.getPassword(), new ArrayList<>()); } } public interface UserRepository extends JpaRepository<User, Long> { User findByUsername(String username); } @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private UserDetailsService userDetailsService; @Override protected void configure(HttpSecurity http) throws Exception { http .csrf().disable() .authorizeRequests() .antMatchers("/", "/home").permitAll() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .permitAll() .and() .logout() .permitAll(); } @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder()); } @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } } @RestController @RequestMapping("/api") public class ApiController { @Autowired private UserService userService; @PostMapping("/register") public ResponseEntity<?> registerUser(@RequestBody User user) { try { User registeredUser = userService.registerUser(user); return ResponseEntity.ok("User registered successfully"); } catch (Exception e) { return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(e.getMessage()); } } @PostMapping("/login") public ResponseEntity<?> authenticateUser(@RequestBody LoginRequest loginRequest) { try { User user = userService.authenticateUser(loginRequest.getUsername(), loginRequest.getPassword()); return ResponseEntity.ok("User authenticated successfully"); } catch (Exception e) { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(e.getMessage()); } } }


上一篇:
下一篇:
切换中文