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

Spring Boot1.4测试是否启用了安全性?

朱浩大
2023-03-14

我想知道我应该如何为我的测试验证用户?现在,我将编写的所有测试都将失败,因为endpoint需要授权。

@RunWith(SpringRunner.class)
@WebMvcTest(value = PostController.class)
public class PostControllerTest {

    @Autowired
    private MockMvc mvc;

    @MockBean
    private PostService postService;

    @Test
    public void testHome() throws Exception {
        this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(view().name("posts"));
    }


}

共有1个答案

罗甫
2023-03-14

Spring Security提供了@WithMockUser注释,可用于指示测试应作为特定用户运行:

@Test
@WithMockUser(username = "test", password = "test", roles = "USER")
public void withMockUser() throws Exception {
    this.mockMvc.perform(get("/")).andExpect(status().isOk());
}

或者,如果使用基本身份验证,则可以发送所需的Authorization标头:

@Test
public void basicAuth() throws Exception {
    this.mockMvc
            .perform(get("/").header(HttpHeaders.AUTHORIZATION,
                    "Basic " + Base64Utils.encodeToString("user:secret".getBytes())))
            .andExpect(status().isOk());
}
 类似资料:
  • 我们正在尝试从传统的Websphere迁移到Liberty配置文件。出现的几个问题之一是,在WAS下,我们使用类com.ibm.ws.security.core。SecurityContext,通过调用isSecurityEnabled()检测服务器的安全性是否已启用。 但是这个类在 Liberty 中找不到,因此会产生错误。它是在功能之一中吗?如果是这样,我不确定如何找到哪一个。如果没有,是否有

  • 所以我肯定有类似的东西在那里,但我已经搜索了一个小时,还没有找到确切的我要找的东西。假设我有一个这样的类: 我该如何制作这样的作品?

  • 下列章节描述了web应用渗透测试方法论的12个子类: 简介与目标 信息收集 配置以及部署管理测试 身份鉴别管理测试 认证测试 授权测试 会话管理测试 输入验证测试 错误处理测试 密码学测试 业务逻辑测试 客户端测试

  • 我正在尝试使用mvnrepository上的工件 https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.4 正如你所看到的[测试依赖],JUnit 4.12有一个漏洞,并有红色警告标志。 我已经通过Gradle下载了这个工件,并检查了外部库。我找到了那个绒球。commons-collections4

  • Cookie是Web服务器发送的一小段信息,用于存储在Web浏览器上,以便以后可以被浏览器读取。这样浏览器会记住一些特定的个人信息。如果黑客获取cookie信息,则可能导致安全问题。 Cookies的属性 以下是Cookie的一些重要属性 - 它们通常是小文本文件,给定ID标记存储在计算机的浏览器目录中。 Web开发人员使用它们来帮助用户有效地浏览其网站并执行某些功能。 当用户再次浏览同一网站时,

  • null CSRF不相关,因为webservice是只读的。 窃取受保护的数据是不相关的,因为webservice是公共的。