当前位置: 首页 > 知识库问答 >
问题:

Spring security给出了403个正确的凭据

苗康平
2023-03-14
@RestController
@RequestMapping (value = "/api/secured/resource/school")
@Secured ({ ApplicationConstants.Role.SYSTEM_ADMIN, ApplicationConstants.Role.SCHOOL_ADMIN })
public class SchoolController
{

    @Autowired
    private SchoolService schoolService;

    @PostMapping (consumes = "application/json")
    @Secured ({ ApplicationConstants.Role.SYSTEM_ADMIN })
    public @ResponseBody ResponsePayload createSchool (HttpServletRequest request, @RequestBody School school)
            throws ServiceException
{
}

 interface Role
    {

        String SYSTEM_ADMIN = "SYSTEM_ADMIN";

        String SCHOOL_ADMIN = "SCHOOL_ADMIN";
    }

Spring配置

<http pattern="/static/**" security="none" />
    <http use-expressions="true">
        <intercept-url pattern="/app/**" access="isAuthenticated()" /> 
        <form-login login-page="/loginPage"
            authentication-success-handler-ref="mySuccessHandler"
            authentication-failure-handler-ref="myFailureHandler" />
        <logout logout-success-url="/loginPage" />
        <custom-filter ref="loginFilter" after="FIRST" />
        <csrf disabled="true" />
    </http>

2016-07-15 16:03:12,525 DEBUG MethodSecurityInterceptor:348-以前通过身份验证:org.springframework.security.authentication.usernamePasswordAuthenticationToken@7670236f:principal:SystemUser[userid=1,name=Administrator,email=admin@tepachi.com,mobilePhone=9999999999,status=active];全权证书:[受保护];认证:真;详细信息:org.springframework.security.web.authentication.webauthenticationdetails@0:remoteIPaddress:0:0:0:0:0:0:0:0:0:0:0:1;Sessionid:1H5X6YXTD1M0Y1OGS4H5VFO1YL;授予权限:SYSTEM_USER,SYSTEM_ADMIN 2016-07-15 16:03:12,525 DEBUG肯定性基础:66-voter:org.springframework.security.Access.vote.rolevoter@55951fcd,返回:0 201 6-07-15 16:03:12,527 DEBUG肯定性基础:66-voter:org.springframework.security.Access.vote.authenticatedvoter@46ab4efc,返回:0 201 6-07-15 16:03:12,529 DEBUG createSchool(javax.servlet.http.HttpServletRequest,com.tepachi.db.entities.user.school)抛出com.tepachi.exception.ServiceException]:org.springframework.security.Access.AccessDeniedException:访问被拒绝

共有1个答案

宣瀚
2023-03-14

问题是Spring4以后,它将ROLE_准备到授予的权限。

hasRole([role]):如果当前主体具有指定的角色,则返回true。默认情况下,如果提供的角色不以'role_'开头,则将添加该角色。这可以通过修改DefaultWebSecurityExpressionHandler上的defaultRolePrefix来定制。

更多信息可以在这里找到Spring Doc

 类似资料:
  • 我知道这可能会被选为副本(因为我已经看到了这张使用Dijkstra算法的负权重图,所以我认为其中没有一个答案是我想要的。我对Dijkstra算法在有一条负边的图中的解感兴趣,但Dijkstra仍然会显示正确的解。那张图会是什么样子?我无法想象,或者我不擅长enough需要了解Dijkstra如何处理负边缘。我知道有一个带负边的图,可以用Dijkstra遍历,并且仍然有正确的路径。请不要告诉我使用贝

  • 我是机器学习和OpenCV的新手。我从Cohn-Kanade人脸数据库中为每种情绪(中性和快乐)拍摄了一组10张图像。然后,我从每个图像中提取面部特征,并将它们放入我的训练数据矩阵中,并为各自的情绪分配标签(例如:0表示中性,1表示快乐)。 我使用了gamma=0.1和C=1的RBF内核。经过训练后,我将从智能手机摄像头中提取出的面部特征用于预测。预测总是返回1。 如果我增加中性表达式的训练样本数

  • 我在React应用程序中使用moment.js,并使用以下代码查找两个unix时间戳之间的差异: null 使用时刻V2.19.2和节点V7.9.0 编辑:输出需要'ed,和之间的时间差可以是几分钟到几个月...

  • 问题内容: 如您所见,我有我的数据库连接文件和另一个“受保护的”文件,我的凭据在其中,并且此文件包含在.gitignore中。我导入它并到达数据。很基本。因此,我的问题是: 这是正确的方法吗? 如果没有,我该怎么办?另外:如何为帐户和连接增加额外的安全性? 假设我有一个私人收藏,没人可以看到,我该如何特别保护这个收藏?我的意思是说,用密码或两步验证。 当前代码: 问题答案: …我有我的数据库连接文

  • > 我有一个谷歌云存储桶,我想只使用云CDN访问它。 我已经创建了负载平衡器,创建了签名密钥,并向它添加了服务帐户,几乎所有的权限,如、、等。 补救步骤: from cmd: 其中是从负载均衡器生成的IP,过期时间当然是未来时间戳,key--file是从服务帐户生成的json密钥文件,--key-name是从源details details生成的签名密钥 在生成签名url的php代码中,我也应用了