2016-04-29 50 views
0

我開始基於Spring啓動一個新的項目,使用該工作配置類春季安全:帶彈簧的安全春天啓動的項目不從其他項目中訪問視圖

@Configuration 
@ComponentScan 
@EnableWebMvcSecurity 
@EnableGlobalMethodSecurity(prePostEnabled = true) 
public class SecurityConfig extends WebSecurityConfigurerAdapter { 
    @Autowired 
    private UserDetailsService userDetailsService; 

    @Autowired 
    private PasswordEncoder passwordEncoder; 

    @Autowired 
    private PermissionEvaluator permissionEvaluator; 

    @Override 
    public void configure(HttpSecurity http) throws Exception { 
     http 
      .csrf() 
      .disable() 
      .authorizeRequests() 
      .antMatchers("/").permitAll() 
      .anyRequest().authenticated() 
      .and() 
      .formLogin() 
      .loginPage("/signin") 
      .loginProcessingUrl("/login").permitAll() 
      .and() 
      .logout() 
      .logoutUrl("/logout") 
      .logoutSuccessUrl("/"); 
    } 

    @Override 
     public void configure(WebSecurity web) throws Exception { 
      DefaultWebSecurityExpressionHandler handler = new DefaultWebSecurityExpressionHandler(); 
      handler.setPermissionEvaluator(permissionEvaluator); 
      web.expressionHandler(handler); 
    } 

    @Override 
    public void configure(AuthenticationManagerBuilder auth) throws Exception { 
     auth 
      .userDetailsService(userDetailsService) 
      .passwordEncoder(passwordEncoder); 
    } 
} 

當我部署項目在tomcat服務器上,沒有錯誤,並嘗試訪問應用程序,而不是索引頁面,我得到一個彈出窗口詢問我的用戶名和密碼。

項目的完整代碼:https://github.com/klebermo/basic_webapp

任何人都可以看看有什麼不對的配置?

+0

我建議閱讀文檔。簡而言之,將'@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)'添加到您的配置類中。 –

回答