在Spring Boot REST调用中获取用户信息,可以通过以下步骤实现:
下面是一个示例代码:
// Step 2: 自定义UserDetailsService实现类
@Service
public class CustomUserDetailsService implements UserDetailsService {
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
// 从数据库或其他存储中根据用户名获取用户信息
// 返回一个实现了UserDetails接口的用户对象
}
}
// Step 3: Spring Security配置类
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private CustomUserDetailsService userDetailsService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
// 配置身份验证和授权规则
}
}
// Step 4: REST控制器
@RestController
public class UserController {
@GetMapping("/user")
public User getUserInfo(@AuthenticationPrincipal UserDetails userDetails) {
// 获取当前已认证的用户信息
// 处理业务逻辑并返回用户对象
}
}
这样,当你在REST控制器中调用"/user"接口时,通过@AuthenticationPrincipal注解注入的UserDetails对象即为当前已认证的用户信息。
推荐的腾讯云相关产品:腾讯云云服务器(ECS),产品介绍链接地址:https://cloud.tencent.com/product/cvm
领取专属 10元无门槛券
手把手带您无忧上云