@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.httpBasic()
.and()
.authorizeRequests().antMatchers("/secret/**").authenticated()
.and()
.authorizeRequests().antMatchers("/**").permitAll();
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/resources/**");
}
}
WebSecurityIglishing()
方法的一般使用省略了Spring Security,并且Spring Security的任何特性都不可用。WebSecurity基于HttpSecurity之上。
@Override
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers("/resources/**")
.antMatchers("/publics/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/publics/**").hasRole("USER") // no effect
.anyRequest().authenticated();
}
上面示例中的WebSecurity让Spring忽略/resources/**
和/publics/**
。因此,不考虑HttpSecurity中的.antmatchers(“/publics/**”).hasrole(“user”)
。
这将从安全筛选器链中完全省略请求模式。请注意,匹配此路径的任何内容都将不应用身份验证或授权服务,并且可以自由访问。
@Override
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers("/login", "/register", "/api/public/**");
}
@Override
public void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/login", "/register", "/api/public/**").permitAll()
.anyRequest().authenticated();
}
到目前为止我们的 SecurityConfig 只包含了关于如何验证我们的用户的信息。Spring Security怎么知道我们想对所有的用户进行验证?Spring Security怎么知道我们需要支持基于表单的验证?原因是WebSecurityConfigurerAdapter在 configure(HttpSecurity http) 方法提供了一个默认的配置,看起来和下面类似: protec
我试图理解RequestMatcher、AntMatcher等是如何工作的。我读了一些帖子,了解了基础知识。实际上,我有一个简单的基本配置: 我真的不明白第1、2、3点。根据我的理解,这意味着和的请求是映射的,应该是授权请求。所有其他请求都需要authenticatoin。 从我的角度来看,这应该是与第一个配置相同的逻辑。但实际上endpoint不再可访问。 我非常感谢你的澄清 更新1: 这是可以
我是Spring Security的新手,我正在尝试使用Spring Security创建一个登录表单。 这是必需的方案: 1)用户使用用户名-密码登录应用程序(请注意,我使用的是Spring Security提供的默认登录页面)2)如果登录正常,用户会转到eventList.jsp3)如果登录为KO(错误的凭据),则会显示错误 My WebSecurityConfigurerAdapter co
我们可以配置多个HttpSecurity实例,就像我们可以有多个块抑郁。关键在于对WebSecurityConfigurationAdapter进行多次扩展。例如下面是一个对/api/开头的URL进行的不同的设置。 @EnableWebSecurity public class MultiHttpSecurityConfig { @Autowired public void con
我使用的Spring安全与oAuth2,但我有一个问题,我没有找到任何答案,在许多项目的例子,你有2次配置(HttpSecurity超文本传输协议)。 例如在https://github.com/spring-projects/spring-security-oauth/blob/master/samples/oauth2/sparklr/src/main/java/org/springframe
问题内容: 我目前正在评估基于Java的安全框架,我是Spring 3.0用户,因此似乎似乎SpringSecurity是正确的选择,但是Spring安全性似乎受到过分复杂的困扰,它似乎并没有使安全性易于实现, Shiro似乎更加连贯,更容易理解。我正在寻找这两个框架之间的利弊清单。 问题答案: 我也同意Spring Security对我来说感觉太复杂了。当然,他们已经做了一些降低复杂性的事情,例