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);
    }

  • 相关阅读:
    java RSA加密解密
    spring boot 错误处理机制
    Redis 服务常见的几个错误解决方案
    Nginx目录遍历功能时间相差8小时
    翻过大山越过海洋看到了什么
    【分享】分层明确高度定制化的 Python Flask MVC
    编程浪子客服系统开源啦
    快速搭建一个直播Demo
    免费为网站加上HTTPS
    Mac 下安装Fiddler抓包工具
  • 原文地址:https://www.cnblogs.com/hcoding/p/11429910.html
Copyright © 2011-2022 走看看