【Spring Boot】配置 Spring Security
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
// 配置用户详情服务
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user").password("{noop}password").roles("USER")
.and()
.withUser("admin").password("{noop}password").roles("USER", "ADMIN");
}
// 配置URL的访问权限
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
}
这段代码定义了一个名为SecurityConfig
的配置类,它扩展了WebSecurityConfigurerAdapter
并使用@EnableWebSecurity
注解启用了Spring Security。在configure
方法中,我们配置了内存中的用户详情服务,并设定了两个用户:user
和admin
,其中密码均为password
,并分配了相应的角色。在configure
方法中,我们定义了HTTP安全策略,允许对主页以及未登录用户的登录页进行匿名访问,其余请求需要认证。同时,我们定义了登录和登出的行为。这个配置类将会被Spring Security框架用来保护应用程序的安全。
评论已关闭