springboot集合springsecurity,mybatis ( 用户名,密码,权限),举例说明,要求每个步骤都有
时间: 2024-06-11 21:09:51 浏览: 162
详细的解释。
1. 创建Spring Boot项目
首先,我们需要创建一个Spring Boot项目。可以使用Spring Initializr来快速创建一个基本的Spring Boot项目,也可以手动创建一个项目。
2. 集成Spring Security
集成Spring Security需要在pom.xml中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
```
然后,在启动类上添加@EnableWebSecurity注解来启用Spring Security。
3. 配置用户信息
接下来,我们需要配置用户信息。我们可以使用内存存储或者数据库存储用户信息。
如果使用内存存储,可以在SecurityConfig中添加以下代码:
```
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user").password("password").roles("USER")
.and()
.withUser("admin").password("password").roles("USER", "ADMIN");
}
```
如果使用数据库存储,可以使用MyBatis来操作数据库。我们需要创建一个UserMapper接口,用于查询用户信息。
```
public interface UserMapper {
User getUserByUsername(String username);
}
```
然后,我们需要在SecurityConfig中添加以下代码:
```
@Autowired
private UserMapper userMapper;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(username -> {
User user = userMapper.getUserByUsername(username);
if (user != null) {
return org.springframework.security.core.userdetails.User.withUsername(username)
.password(user.getPassword())
.authorities(user.getAuthorities())
.build();
} else {
throw new UsernameNotFoundException("User not found");
}
});
}
```
4. 配置权限
接下来,我们需要配置权限。我们可以使用注解或者XML配置权限。
如果使用注解配置权限,可以在Controller的方法上添加以下注解:
```
@PreAuthorize("hasRole('ADMIN')")
```
如果使用XML配置权限,可以在SecurityConfig中添加以下代码:
```
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and().formLogin();
}
```
这里的意思是,访问/admin/**的URL需要ADMIN角色,其他URL需要认证。
5. 测试
最后,我们需要测试我们的应用程序是否正常工作。我们可以使用Postman或者浏览器来测试。
例如,我们可以访问http://localhost:8080/admin/hello,如果我们没有ADMIN角色,将会返回403 Forbidden。如果我们有ADMIN角色,将会返回Hello Admin。
以上就是集成Spring Security和MyBatis的步骤。
阅读全文