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

SpringBoot:带授权的WebMvcTest

苏胤
2023-03-14
@RunWith(SpringRunner.class)
@WebAppConfiguration
@WebMvcTest
public class MockMvcTests {

    // Pull in the application context created by @ContextConfiguration
    @Autowired
    private WebApplicationContext wac;

    private MockMvc mockMvc;

    @MockBean
    private I18NService i18NService;

    @MockBean
    private EmailService emailService;

    @MockBean
    private PasswordResetTokenService passwordResetTokenService;

    @MockBean
    private UserService userService;

    @MockBean
    private CompanyService companyService;

    @MockBean
    private UserSecurityService userSecurityService;

    @Before
    public void setup() {
        // Setup MockMVC to use our Spring Configuration
        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
    }

    /**
     * 
     * @throws Exception
     *             If anything fails.
     */
    @Test
    public void getDeviceEventsTest() throws Exception {
        this.mockMvc
                .perform(get("/deviceevent/list") //
                .accept(MediaType.parseMediaType("text/html;charset=UTF-8")))
                .andExpect(status().isOk()) //
                .andExpect(model().size(1)); //
    }
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "#authorization.expression('hasRole(''ROLE_ADMIN'')')" (tdk/common/menu:62)

有没有办法绕过授权?

共有1个答案

桑鸿志
2023-03-14

我首先在hasrole('role_admin'')中看到了奇怪的表达式可能的问题,这里看起来像两个单引号,而不是双引号,但可能只是在日志中看起来很奇怪。

无论如何,为了绕过auth机制进行测试,您需要在测试模式下禁用Spring Security性,这里描述了一些工作方法

我通常在配置和配置文件设置中使用这种方法,因为它比其他描述的方法更灵活。

 类似资料:
  • 本文向大家介绍SpringBoot Shiro授权实现过程解析,包括了SpringBoot Shiro授权实现过程解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了SpringBoot Shiro授权实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用Shiro过滤器实现授权 设置好授权拦截跳转的请求地址 再使用 fil

  • 问题内容: 我正在尝试发送跨域域并添加自定义的“授权”标头。请参见下面的代码。 错误: XMLHttpRequest无法加载{url}。请求标头字段Access-Control-Allow-Headers不允许授权。 我也尝试过: 在ajax请求中。 可能是jquery-ajax框架阻止了跨域身份验证?我怎样才能解决这个问题? 更新: 顺便说一句:是否有一种更安全的方法将auth.key存储在客户

  • 我想更好地理解隐式授权流和授权代码授权流之间的区别,因为我不确定我目前的理解是否正确。 隐式授权流主要由前端应用程序用于验证用户身份吗? 隐式授权流是否只需要一个client_id、用户名和密码来进行身份验证,换句话说,永远不会发送client_secret? 授权码只是一个短期令牌吗? 将授权码交换为访问令牌后,客户端可以访问用户帐户多长时间?具体地说,如果客户端是一个长时间运行的脚本,那么用户

  • 授权是指验证用户是否允许做某件事的过程。Yii提供两种授权方法: 存取控制过滤器(ACF)和基于角色的存取控制(RBAC)。 存取控制过滤器 存取控制过滤器(ACF)是一种通过 yii\filters\AccessControl 类来实现的简单授权方法, 非常适用于仅需要简单的存取控制的应用。正如其名称所指,ACF 是一种动作过滤器 filter,可在控制器或者模块中使用。当一个用户请求一个动作时

  • 可能是NAS不支持返回的AVP以限制带宽。 AVP的单位也可能不匹配。例如,计数器期望值为Kbit / s而不是bit / s。 为了提高速度,应使用Perl代替Bash。如果你使用perl模块,当FreeRADIUS启动时,Perl解释器和Perl脚本将被加载到内存中。 FreeRADIUS内部使用的其他属性应在字典文件中定义,该文件位于FreeRADIUS配置目录下。 内部属性列表称为控制列表

  • 本书以 署名-非商业性使用-相同方式共享 发布 您可以自由: 复制、发行、展览、表演、放映、广播或通过信息网络传播本作品 创作演绎作品 惟须遵守下列条件: 署名 您必须按照作者或者许可人指定的方式对作品进行署名。 非商业性使用 您不得将本作品用于商业目的。 相同方式共享 如果您改变、转换本作品或者以本作品为基础进行创作,您只能采用与本协议相同的许可协议发布基于本作品的演绎作品。 对任何再使用或者发