2014-01-14 5 views
2

Я следую руководство Spring Security отсюда, http://docs.spring.io/spring-security/site/docs/3.2.0.RELEASE/reference/htmlsingle/#jc-httpsecurityвесна HttpSecurity безопасности

Я эти настройки в моем pom.xml

<dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-web</artifactId> 
     <version>3.2.0.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-config</artifactId> 
     <version>3.2.0.RELEASE</version> 
    </dependency> 

В моем классе конфигурации безопасности

@Configuration 
@EnableWebSecurity 
public class SecurityConfig extends WebSecurityConfigurerAdapter { 

У меня есть

protected void configure(HttpSecurity http) throws Exception { 
    http 
    .authorizeRequests() 
     .anyRequest().authenticated() 
     .and() 
    .formLogin() 
     .loginPage("/login") 
     .permitAll();   
} 

HttpSecurity имеет метод formLogin, но и другие вызовы, начинающиеся с authorizeRequests() возвращает тип
org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry, который не имеет метод formLogin больше.

Любая идея, где я ошибаюсь?

ответ

4

Попробуйте изменить порядок так, что конфигурация формы Войти первично:

protected void configure(HttpSecurity http) throws Exception { 
    http 
    .formLogin() 
     .loginPage("/login") 
     .permitAll() 
     .and() 
    .authorizeRequests() 
     .anyRequest() 
     .authenticated(); 
} 

EDIT: изменил ".and" на ".AND()"

+0

Благодаря Эрик. Он работает так. Я новичок в мире java, любая идея, почему весенний сайт показывает, что он работает по-другому? – Peter

+0

Трудно видеть намерение кода безопасности Spring здесь, но для меня это похоже на то, что происходит стирание случайного типа или документация просто не точно отражает то, как код предназначен для работы. –

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