实现“Spring Boot 当前登陆人”的方法
表格展示步骤
步骤 | 描述 |
---|---|
步骤一 | 创建一个Spring Boot项目 |
步骤二 | 添加Spring Security依赖 |
步骤三 | 创建一个UserDetailsService实现类 |
步骤四 | 配置Spring Security |
步骤五 | 在Controller中获取当前登陆人信息 |
每一步需要做什么及代码展示
步骤一:创建一个Spring Boot项目
首先,在IDE中创建一个新的Spring Boot项目,可以使用Spring Initializr来创建一个基本的Spring Boot项目。
步骤二:添加Spring Security依赖
在项目的pom.xml文件中添加Spring Security的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
步骤三:创建一个UserDetailsService实现类
创建一个实现UserDetailsService接口的类,用于从数据库或其他数据源中获取用户信息:
@Component
public class CustomUserDetailsService implements UserDetailsService {
@Autowired
private UserRepository userRepository;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User user = userRepository.findByUsername(username);
if (user == null) {
throw new UsernameNotFoundException("User not found");
}
return new CustomUserDetails(user);
}
}
步骤四:配置Spring Security
在Spring Boot的配置类中配置Spring Security,包括密钥、登录页面等:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private CustomUserDetailsService userDetailsService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasRole("USER")
.and()
.formLogin();
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
步骤五:在Controller中获取当前登陆人信息
在Controller中可以通过Authentication对象获取当前登陆人的信息:
@GetMapping("/user")
public String currentUser(Authentication authentication) {
CustomUserDetails userDetails = (CustomUserDetails) authentication.getPrincipal();
String username = userDetails.getUsername();
return "Current user: " + username;
}
甘特图展示
gantt
title 实现“Spring Boot 当前登陆人”的方法
section 创建项目
步骤一: 2022-01-01, 1d
section 添加依赖
步骤二: 2022-01-02, 1d
section 创建UserDetailsService实现类
步骤三: 2022-01-03, 1d
section 配置Spring Security
步骤四: 2022-01-04, 1d
section 获取当前登陆人信息
步骤五: 2022-01-05, 1d
通过以上步骤,你就可以实现在Spring Boot项目中获取当前登陆人的信息了。希望这篇文章对你有所帮助!如果有任何问题,欢迎随时提出。