Chl*_*loe 0 java spring spring-boot java.security
我有一个接受 Principal 的 Spring API 服务。
public ResponseEntity<ApiCustomResponse> create(Principal principal, UrlInfoData urlinfo) throws ApiException;
Run Code Online (Sandbox Code Playgroud)
Principal 由 Spring 为 OAuth2 API 调用自动创建。我想为网页管理界面使用相同的服务。
@Autowired
private IShortUrlService apiService;
...
Principal principal = new Principal();
apiService.create(principal, urlinfo);
Run Code Online (Sandbox Code Playgroud)
我想用当前登录的管理员用户名实例化主体。但是,不推荐使用所有实例化类。如何实例化主体以传递给服务?
https://docs.oracle.com/javase/8/docs/api/java/security/Principal.html
小智 5
既然java.security.Principal是接口,为什么不实现呢?
Principal principal = new Principal() {
@Override
public String getName() {
return adminName;
}
}
apiService.create(principal, urlinfo);
Run Code Online (Sandbox Code Playgroud)
此外,您可以通过以下方式获取当前登录用户的主体: SecurityContextHolder.getContext().getAuthentication().getPrincipal()
| 归档时间: |
|
| 查看次数: |
855 次 |
| 最近记录: |