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
任何人都可以看看有什麼不對的配置?
我建議閱讀文檔。簡而言之,將'@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)'添加到您的配置類中。 –