基于spring boot学生宿舍管理系统分三个角色登录功能判断是哪个角色的业务逻辑代码
时间: 2024-01-17 09:05:51 浏览: 72
学生宿舍管理系统java spring boot
假设三种角色分别为学生、宿管和管理员,可以使用Spring Security框架来实现角色的登录功能判断。下面是一个简单的实现示例:
1. 添加Spring Security依赖
在pom.xml文件中添加以下依赖:
``` xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
```
2. 配置Spring Security
在Spring Boot应用程序的主类中,添加@EnableWebSecurity注解以启用Spring Security,并创建一个扩展WebSecurityConfigurerAdapter的配置类:
``` java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("student").password("{noop}123456").roles("STUDENT")
.and()
.withUser("dormitory").password("{noop}123456").roles("DORMITORY")
.and()
.withUser("admin").password("{noop}123456").roles("ADMIN");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/student/**").hasRole("STUDENT")
.antMatchers("/dormitory/**").hasRole("DORMITORY")
.antMatchers("/admin/**").hasRole("ADMIN")
.and()
.formLogin();
}
}
```
上述代码中,我们创建了三个用户,分别对应三种角色,并使用inMemoryAuthentication()方法将它们保存在内存中。在configure()方法中,我们使用authorizeRequests()方法配置了不同URL路径需要的角色权限,同时使用formLogin()方法开启表单登录功能。
3. 创建角色对应的Controller
接下来,我们可以创建三个不同的Controller类,分别为学生、宿管和管理员提供不同的业务逻辑实现。这些Controller类可以使用@RestController注解来标记,以便支持返回JSON格式的数据。
``` java
@RestController
@RequestMapping("/student")
public class StudentController {
@GetMapping("/info")
public String getInfo() {
return "This is student info page!";
}
}
@RestController
@RequestMapping("/dormitory")
public class DormitoryController {
@GetMapping("/info")
public String getInfo() {
return "This is dormitory info page!";
}
}
@RestController
@RequestMapping("/admin")
public class AdminController {
@GetMapping("/info")
public String getInfo() {
return "This is admin info page!";
}
}
```
上述代码中,我们分别创建了StudentController、DormitoryController和AdminController,并在每个Controller中分别添加了一个@GetMapping注解的方法,以提供不同的业务逻辑。
以上就是基于Spring Boot实现学生宿舍管理系统分三个角色登录功能判断的示例代码。需要注意的是,这只是一个简单的示例,实际应用中可能需要更复杂的权限控制和业务逻辑实现。
阅读全文