我有一个接受 Principal 的 Spring API 服务。public ResponseEntity<ApiCustomResponse> create(Principal principal, UrlInfoData urlinfo) throws ApiException;Principal 由 Spring 自动为 OAuth2 API 调用创建。我想为网页管理界面使用相同的服务。@Autowiredprivate IShortUrlService apiService;... Principal principal = new Principal(); apiService.create(principal, urlinfo);我想用当前登录的管理员用户名实例化委托人。但是,所有实例化类都已弃用。如何实例化 Principal 以传递给服务?https://docs.oracle.com/javase/8/docs/api/java/security/Principal.html
1 回答
MMMHUHU
TA贡献1834条经验 获得超8个赞
既然java.security.Principal是接口,为什么不实现呢?
Principal principal = new Principal() {
@Override
public String getName() {
return adminName;
}
}
apiService.create(principal, urlinfo);
此外,您可以通过以下方式获取当前登录用户的 Principal:SecurityContextHolder.getContext().getAuthentication().getPrincipal()
添加回答
举报
0/150
提交
取消
