2015-10-16 3 views
1

Я пытаюсь настроить Spring boot с весной безопасности для приложения.Весенняя загрузка и весна Безопасность inMemoryAuthentication не работает

Однако inMemoryAuthentication(), кажется, не работает, и для каждого пользователя у меня ниже ошибки:

INFO 6964 --- [nio-8080-exec-6] o.s.b.a.audit.listener.AuditListener  : AuditEvent [timestamp=Fri Oct 16 19:09:41 IST 2015, principal=anonymousUser, type=AUTHORIZATION_FAILURE, data={message=Access is denied, type=org.springframework.security.access.AccessDeniedException}] 

Ниже перечислены файлы конфигурации, используемые:

SecurityConfig.java:

@Configuration 
@EnableWebMvcSecurity 
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER) 
public class SecurityConfig extends WebSecurityConfigurerAdapter { 


    @Override 
    public void configure(WebSecurity web) throws Exception 
    { 
     // 
     web 
     .ignoring() 
     .antMatchers("/WEB-INF/jsp/**"); 
    } 

    @Autowired 
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception 
    { 
      auth.inMemoryAuthentication() 
        .withUser("user").password("password").roles("USER"); 


    } 


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

     http 

      .authorizeRequests().antMatchers("/homepage**").hasRole("USER") 
      .antMatchers("/index**").permitAll() 
      .antMatchers("/login**").permitAll() 

      .and() 
      .formLogin() 
      .loginPage("/login") 
      .loginProcessingUrl("/login") 
      .defaultSuccessUrl("/index"); 
     http.csrf().disable(); 

    } 

Даже приложение не смогло войти в систему с указанными «пользователем» и «паролем»;

Spring boot version: 1.2.6 
Editor: STS 

Что касается журналов отладки, пользователь inMemoryAuthencated показывает, как пользователь Anonymous:

org.sprin[email protected]90576bf4: **Principal: anonymousUser**; Credentials: [PROTECTED]; Authenticated: true; Details: org.sprin[email protected]21a2c: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: FB03A4C352FC0164A5A3F751E52A5421; **Granted Authorities: ROLE_ANONYMOUS** 

Любое понимание?

+0

В вашей конфигурации указано, что 'homepage' - это страница входа в систему, но пользователю необходимо иметь роль' USER' для доступа к ней? – jny

+0

@jny, я редактировал, я думаю, что это не вызывает проблемы –

ответ

2

если вы замените пользовательский процесс входа в систему с автоматически генерируемой страницы входа:

@Override 
protected void configure(HttpSecurity http) throws Exception { 
    http.authorizeRequests().antMatchers("/homepage**").hasRole("USER") 
     .antMatchers("/index**").permitAll() 
     .antMatchers("/login**").permitAll() 
     .and() 
     .formLogin(); 
     //.loginPage("/login") 
     //.loginProcessingUrl("/login") 
     //.defaultSuccessUrl("/index"); 
    http.csrf().disable(); 
} 

ли ошибка все еще происходит? если нет, это, по-видимому, проблема с вашим пользовательским процессом входа в систему.

+0

@ Спасибо Y.M, это помогло –

Смежные вопросы