创建Spring Security怎么配置
时间: 2024-02-22 15:27:30 浏览: 12
有关Spring Security的具体配置,可以参考以下步骤:
1. 在pom.xml文件中添加Spring Security依赖项:
```
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
```
2. 在Spring应用程序上下文文件中配置Spring Security:
```
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private DataSource dataSource;
@Autowired
private PasswordEncoder passwordEncoder;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
// 数据库中获取用户
auth.jdbcAuthentication().dataSource(dataSource)
.usersByUsernameQuery("select username,password,enabled "
+ "from users "
+ "where username = ?")
.authoritiesByUsernameQuery("select username, authority "
+ "from authorities "
+ "where username = ?")
.passwordEncoder(passwordEncoder);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasAnyRole("USER", "ADMIN")
.antMatchers("/").permitAll()
.and().formLogin();
}
}
```
3. 在应用程序资源目录下创建一个名为“schema.sql”的文件并添加以下内容:
```
create table users (
username varchar2(50) not null primary key,
password varchar2(100) not null,
enabled boolean not null
);
create table authorities (
username varchar2(50) not null,
authority varchar2(50) not null,
constraint fk_authorities_users foreign key(username) references users(username)
);
```
4. 在应用程序资源目录下创建一个名为“data.sql”的文件并添加以下内容:
```
insert into users values('user', '$2a$10$q.e6pBKw6ImlU6N3U9wd2.h8yArWg/BoRphz/22HjEysRBWTZ019u', true);
insert into users values('admin', '$2a$10$q.e6pBKw6ImlU6N3U9wd2.h8yArWg/BoRphz/22HjEysRBWTZ019u', true);
insert into authorities values('user', 'ROLE_USER');
insert into authorities values('admin', 'ROLE_USER');
insert into authorities values('admin', 'ROLE_ADMIN');
```
这是一个简单的Spring Security配置示例。您可以根据您的具体应用程序需求进行修改和调整。