我很难确定如何在不强制身份验证的情况下连接弹簧安全性。我的特定应用程序不需要用户进行身份验证,但用户可以根据需要进行身份验证。
我目前有一个WebSecurityConfigurerAdapter设置,您可以在本文末尾看到。通过此设置,我在所有/ api / *请求和/ j_spring_security_check上获得403。
有人可以帮我修复我现有的配置还是指向一个可以完成此操作的工作示例?
我看到的每个示例似乎都要求用户进行身份验证,如果他们没有抛出403.在我的应用中,我只是用它来建立会话,此时所有用户应该能够访问所有端点,无论它们是否经过身份验证。
WebSecurityConfig
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private ItAuthenticationProvider customAuthenticationProvider;
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) {
auth.authenticationProvider(customAuthenticationProvider);
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/resources/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable().authorizeRequests().antMatchers("/**").permitAll()
.antMatchers("/j_spring_security_check").permitAll()
.and().formLogin()
.loginProcessingUrl("/j_spring_security_check")
.defaultSuccessUrl("/successful.html")
.loginPage("/#login")
.permitAll()
.and()
.logout()
.logoutSuccessUrl("/successful.html");
}
}
答案 0 :(得分:2)
您可以查看我们使用this sample支持构建的Stormpath Spring Security应用程序。在此示例中,主屏幕不需要身份验证。此外,根据用户是否经过身份验证,动态计算在那里显示的信息。
答案 1 :(得分:0)
如果我了解您的要求,您可以使用匿名身份验证。 可以找到文档here