Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class SpringDataUserDetailsService implements UserDetailsService {
- private LogInService logInService;
- private ReCaptchaVerification reCaptchaVerification;
- private HttpServletRequest request;
- @Autowired
- public void setLogInService(LogInService logInService) {
- this.logInService = logInService;
- }
- @Autowired
- public void setReCaptchaVerification(ReCaptchaVerification reCaptchaVerification) {
- this.reCaptchaVerification = reCaptchaVerification;
- }
- @Autowired
- public void setRequest(HttpServletRequest request) {
- this.request = request;
- }
- @Override
- public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
- User user;
- List<GrantedAuthority> authorities = new ArrayList<>();
- if (reCaptchaVerification.verify(request.getParameter("g-recaptcha-response"))) {
- user = logInService.logIn(username)
- .orElseThrow(() -> new UsernameNotFoundException(String.format("User %s not found", username)));
- authorities.add(new SimpleGrantedAuthority(user.getRole().name()));
- } else {
- throw new RuntimeException("ReCaptcha on logging in was missed");
- }
- return new org.springframework.security.core.userdetails.User(user.getUsername(), user.getPassword(),
- authorities);
- }
- }
- @RunWith(SpringRunner.class)
- @ContextConfiguration(classes = TestConfig.class)
- @WebAppConfiguration
- @ActiveProfiles("test")
- public class SecurityTest {
- @Autowired
- private WebApplicationContext context;
- private MockMvc mockMvc;
- private static final String CORRECT_PASSWORD = "123456";
- private static final String CORRECT_USERNAME = "username2";
- @Before
- public void setUp() {
- mockMvc = MockMvcBuilders
- .webAppContextSetup(context)
- .apply(springSecurity())
- .build();
- }
- @Test
- @WithAnonymousUser
- public void userTestFormLoginWithCorrectPasswordAndUsername() throws Exception {
- mockMvc.perform(formLogin("/logIn").user(CORRECT_USERNAME).password(CORRECT_PASSWORD))
- .andExpect(status().isFound())
- .andExpect(redirectedUrl("/loggedIn"))
- .andExpect(authenticated().withUsername(CORRECT_USERNAME))
- .andExpect(authenticated().withRoles("USER"));
- }
- }
- java.lang.RuntimeException: ReCaptcha on logging in was missed
- at comMessageApp.config.SecurityWebConfig.lambda$configure$1(SecurityWebConfig.java:88)
- at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.unsuccessfulAuthentication(AbstractAuthenticationProcessingFilter.java:352)
- at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:224)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
- at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
- at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:124)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
- at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
- at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
- at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
- at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
- at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
- at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134)
- at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:155)
- at comMessageApp.security.AuthorizeRequestsTest.userTestFormLoginWithCorrectPasswordAndUsername(AuthorizeRequestsTest.java:54)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
- at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
- at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
- at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
- at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
- at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
- at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
- at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
- at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
- at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
- at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
- at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
- at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
- at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
- at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
- at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
- at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
- at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
- at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
- at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
- at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
- at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
- at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
- at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
- at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
- Caused by: org.springframework.security.authentication.InternalAuthenticationServiceException: ReCaptcha on logging in was missed
- at org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:126)
- at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:144)
- at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
- at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:199)
- at org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:94)
- at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
- ... 51 more
- Caused by: java.lang.RuntimeException: ReCaptcha on logging in was missed
- at comMessageApp.service.SpringDataUserDetailsService.loadUserByUsername(SpringDataUserDetailsService.java:49)
- at org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:114)
- ... 56 more
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement