zoukankan      html  css  js  c++  java
  • Spring-web-security Issue (Access is denied. User must have one of the these roles: ACTUATOR)

    前提条件(Prerequisite)

    1.你的项目里引进了Spring web security 

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>

    <version>1.5.19.RELEASE</version
    </dependency>

    2. application.properties

    management.context-path=/mgmt

    3. 给Actuator相关的URL 加了另外的权限

    http.authorizeRequests()
    .antMatchers("/mgmt/**").hasAnyRole(ADMIN, SUPPORT, ACTUATOR)
    .antMatchers("/**").hasRole(USER)
    .and().formLogin().and().httpBasic();

    出现的问题(Issue )-- 当登陆你的username and password 时 而且你这个user 是 ADMIN 或SUPPORT时, 出现下面错误页面。

    Access is denied. User must have one of the these roles: ACTUATOR

    解决方法(Solution)

    disable manangement security in application.properties 或系统参数

    management.security.enabled=false

    原因(Cause)

    Spring 会用一个MvcEndpointSecurityInterceptor 阻止所有非actuator角色的用户, 及时你已经重新自定义自己的权限管理。

    private void sendFailureResponse(HttpServletRequest request,
    HttpServletResponse response) throws Exception {
    if (request.getUserPrincipal() != null) {
    String roles = StringUtils.collectionToDelimitedString(this.roles, " ");
    response.sendError(HttpStatus.FORBIDDEN.value(),
    "Access is denied. User must have one of the these roles: " + roles);
    }

  • 相关阅读:
    numpy排序函数:sort、argsort、lexsort、partition、sorted
    转载一份分类、回归、排序的评价指标
    python类的全面介绍
    好文推荐:转载一篇别人kaggle的经验分享
    实现ls -l
    C命令行参数
    C语言调用汇编
    汇编调用C程序
    linux 进程通信 :流套接字
    linux进程通信:消息队列
  • 原文地址:https://www.cnblogs.com/hcoding/p/11429910.html
Copyright © 2011-2022 走看看