http://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/#test-mockMVC
测试:
@ContextConfiguration(locations = "classpath:applicationContext.xml")
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
public class LikesTest {
protected MockMvc mockMvc;
@Autowired
private WebApplicationContext context;
@Before
public void setup() {
mockMvc = MockMvcBuilders
.webAppContextSetup(context)
//.standaloneSetup(new MessageController())
.apply(SecurityMockMvcConfigurers.springSecurity())
.build();
}
@Test
@WithMockUser("user")
public void testAddLike() throws Exception {
mockMvc.perform(get("/like?msgId=4&like=false"));
}
}
当我运行JUnit测试时,我会得到以下失败跟踪
<bean id="springSecurityFilterChain" class="org.springframework.security.web.FilterChainProxy"/>
在您的例子中,当使用.WebAppContextSetup
时,您可能忘记扩展AbstractSecurityWebApplicationInitializer
以初始化安全筛选器。
对于独立设置,需要将她的安全配置添加到@ContextConfiguration并autowire这个bean:
@Autowired
FilterChainProxy springSecurityFilterChain;
然后像这样准备MockMvc:
MockMvc mockMvc = MockMvcBuilders
.standaloneSetup(controller)
.apply(SecurityMockMvcConfigurers.springSecurity(springSecurityFilterChain))
.build();
想改进这个问题吗 通过编辑此帖子,添加详细信息并澄清问题。 我想进行联调。我目前的方法: 我放置了@AutoConfigreMockMvc,但MockMvc对象仍然为空
我在这里有很多问题要解决。一直试图将上述3项技术集成到我们的WebApp中…我们要使用 null web.xml: 我的servlet-context.xml: My manager-context.xml: 编辑2 我认为主要的问题是SpringSecurity需要webapp上下文(ContextLoaderListener)才能工作,但web应用程序是在servlet上下文中运行的。控制器方
这里有一个非常基本的spring boot项目,只有6个类。 https://github.com/paranoiabla/spring-boot-mockmvc 设置非常基本,只有一个测试用例失败了。我得到的例外是 我相信这是因为line,方法通过调用仅接受路径的构造函数创建了。作为内部的结果,使用初始化,它将在类路径中查找资源。这样,如果我有一个并且我的属性文件在中,它将永远找不到它们,因为被
我正在学习springsecurity(基于java的配置),我无法使注销正常工作。当我点击注销时,我看到URL更改为http://localhost:8080/logout并获取“HTTP 404-/logout”。登录功能工作正常(即使使用自定义登录表单),但问题是注销,我怀疑重定向的url“localhost:8080/logout”应该类似于“localhost:8808/springte
主要内容:1.入门,2.设置用户名和密码1.入门 1.启动一个SpringBoot项目 2.导入SpringSecurity相关依赖 3.编写Controller TestController.java 用户是user 密码是刚刚的 2.设置用户名和密码 1.在配置文件中设置 2.在配置类中设置 3.自定义实现类 2.1 配置文件中设置 2.2 在配置类中设置 设置用户名为zZZ,密码为root 2.3 自定义实现类 配置类: 业务类: