Java getAuthority()上的AuthorizationService中出现警告

Java getAuthority()上的AuthorizationService中出现警告,java,spring,spring-security,oauth-2.0,sonarqube,Java,Spring,Spring Security,Oauth 2.0,Sonarqube,我有一个Spring Boot应用程序,在调用getAuthority()的行中,我在我的方法上得到以下警告。我该怎么修 控制权限是安全敏感的。它在过去导致了以下漏洞: @服务 公共类授权服务实现UserDetailsService{ @自动连线 私人储蓄所; public UserDetails loadUserByUsername(字符串userId){ MEntity user=mRepository.findByName(userId); if(user==null){ 抛出新

我有一个Spring Boot应用程序,在调用
getAuthority()
的行中,我在我的方法上得到以下警告。我该怎么修

控制权限是安全敏感的。它在过去导致了以下漏洞:

@服务
公共类授权服务实现UserDetailsService{
@自动连线
私人储蓄所;
public UserDetails loadUserByUsername(字符串userId){
MEntity user=mRepository.findByName(userId);
if(user==null){
抛出新用户名NotFoundException(“无效用户名或密码”);
}
返回新用户(User.getName(),User.getPassword(),getAuthority());
}
private List getAuthority(){//我在这里得到了警告
返回Arrays.asList(新的SimpleGrantedAuthority(“角色管理”);
}

较新版本的SonarQube不仅会提供代码气味、问题和错误警告,还会提供安全热点。这些都不是代码本身的问题

正如后面的警告所说:

此规则标记控制对资源和操作的访问的代码。目标是指导安全代码检查

这只是意味着你应该仔细看一看,因为Sonar已经在你的代码中识别出一行被授予权限的代码。这有助于审阅者发现与安全相关的代码片段

然而,SonarQube不能说明此代码是否安全。您需要自己确保这一点。它只会告诉您在哪里查找两次。如果您觉得此代码很好,您可以将此SonarQube设置为“按审核方式解决”


另请参阅SonarQube官方文档:

SonarQube的较新版本不仅提供代码气味、问题和错误警告,还提供安全热点。这些都不是代码本身的问题

正如后面的警告所说:

此规则标记控制对资源和操作的访问的代码。目标是指导安全代码检查

这只是意味着你应该仔细看一看,因为Sonar已经在你的代码中识别出一行被授予权限的代码。这有助于审阅者发现与安全相关的代码片段

然而,SonarQube不能说明此代码是否安全。您需要自己确保这一点。它只会告诉您在哪里查找两次。如果您觉得此代码很好,您可以将此SonarQube设置为“按审核方式解决”

另请参见官方SonarQube文件: