springboot 注解加解密完整代码
时间: 2024-11-23 21:29:29 浏览: 20
SpringBoot接口加密解密统一处理
Spring Boot 中使用注解配合加密功能通常涉及到Spring Security库,因为Spring Security提供了对密码等敏感数据加密的支持。以下是一个简单的例子,展示了如何在控制器方法上添加@PreAuthorize注解进行预授权并使用PasswordEncoder接口加密解密密码:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.security.crypto.password.PasswordEncoder;
@RestController
public class UserController {
private final PasswordEncoder passwordEncoder; // 密码编码器
@Autowired
public UserController(PasswordEncoder passwordEncoder) {
this.passwordEncoder = passwordEncoder;
}
@PostMapping("/register")
@PreAuthorize("hasRole('USER')")
public ResponseEntity<?> register(@RequestBody User user) {
String encryptedPassword = passwordEncoder.encode(user.getPassword()); // 加密密码
user.setPassword(encryptedPassword); // 更新数据库存储的加密密码
// ...其他注册处理逻辑...
return ResponseEntity.ok().build(); // 返回响应
}
}
// 假设User类有一个名为$password$的字段
class User {
private String username;
private String password;
// getters and setters...
}
阅读全文