好的,我正在学习春季安全性,并且遇到了一些私有代码,这些私有代码配置如下。httpSecurity.authorizeRequests().anyRequest().permitAll();
现在,我看到了httpsecurity方法的javadocs,并遇到了httpBasic()httpSecurity.httpBasic();
这两条线的输出相同。因此,有人可以帮助我了解其中的区别吗?
最佳答案
authorizeRequest()authorizeRequest()
用于使用RequestMatcher实现(即通过URL模式)基于HttpServletRequest限制访问。
配置示例:
最基本的示例是将所有URL配置为要求角色“ ROLE_USER”。以下配置要求对每个URL进行身份验证,并将授予用户“ admin”和“ user”的访问权限。
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests(authorizeRequests ->
authorizeRequests
.antMatchers("/**").hasRole("USER")
)
.formLogin(withDefaults());
}
httpBasic()
配置HTTP基本身份验证。 HTTP Basic身份验证实现是对Web资源实施访问控制的最简单技术,因为它不需要Cookie,会话标识符或登录页面。默认领域是“ Spring Security Application”。
示例配置
下面的示例演示如何为应用程序配置HTTP Basic身份验证。
@Configuration
@EnableWebSecurity
public class HttpBasicSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/**").hasRole("USER").and().httpBasic();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("user").password("password").roles("USER");
}
}