Запрос не был применен, поскольку в нем отсутствуют действительные учетные данные аутентификации для целевого ресурса.(Весенняя охрана) - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь настроить Spring Security .

Если я вхожу в систему, проверяя опцию " Запомнить меня ", а затем я закрываю браузер и снова-открыть его, я получаю сообщение об ошибке

The request has not been applied because it lacks valid authentication credentials for the target resource.

на любой странице, к которой я пытаюсь добраться (как публичной, так и защищенной).

Это мои классы конфигурации

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
   @Autowired
   public void configureGlobalSecurity(AuthenticationManagerBuilder auth) throws Exception {
     auth.inMemoryAuthentication().passwordEncoder(passwordEncoder()).withUser("admin").password(passwordEncoder().encode("pass")).roles("ADMIN");

 }
     @Bean
    public PasswordEncoder passwordEncoder() {
            BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
            return passwordEncoder;
    }     


    @Override
    protected void configure(HttpSecurity httpSecurity) throws Exception {

       httpSecurity.formLogin()
            .loginPage("/login") 
            .usernameParameter("userId") 
            .passwordParameter("password"); 

       httpSecurity.formLogin()
            .defaultSuccessUrl("/")                   
            .failureHandler(new CustomAuthenticationFailureHandler())
            .and()
            .sessionManagement()  
            .maximumSessions(1) 
            .expiredUrl("/login?expired") 
            .maxSessionsPreventsLogin(true); 

       httpSecurity.logout()           
            .logoutSuccessUrl("/login?logout");

       httpSecurity.rememberMe()        
            .rememberMeParameter("rememberMe") 
            .key("rememberMeKey") 
            .tokenValiditySeconds(1800);  

      httpSecurity.exceptionHandling()
            .accessDeniedPage("/login?accessDenied"); 

       httpSecurity.authorizeRequests()             
            .antMatchers("/").permitAll()                   
            .antMatchers("/**/private/**").access("hasRole('ADMIN')")  
            .antMatchers("/**/market/**").access("hasRole('USER')");      
       httpSecurity.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
    }    

}




public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 
    @Override 
    protected Class<?>[] getRootConfigClasses() { 
        return new Class [] {RootApplicationContextConfig.class}; 
    }

    @Override 
    protected Class<?>[] getServletConfigClasses() { 
        return new Class[] { 
                WebApplicationContextConfig.class 
                }; 
    }   
    @Override protected String[] getServletMappings() { 
        return new String[] { "/" }; 
    }

}




public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {  

     @Override
        protected boolean enableHttpSessionEventPublisher() {          
            return true;
        }
}

В чем моя ошибка?Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...