springboot 简单权限控制器
时间: 2023-05-28 19:06:53 浏览: 109
Spring Boot可以通过Spring Security框架来实现权限控制。下面是一个简单的权限控制器的示例代码:
```java
@RestController
@RequestMapping("/api")
public class UserController {
@GetMapping("/hello")
public String hello() {
return "Hello, World!";
}
@GetMapping("/admin")
@PreAuthorize("hasRole('ADMIN')")
public String admin() {
return "Hello, Admin!";
}
@GetMapping("/user")
@PreAuthorize("hasRole('USER')")
public String user() {
return "Hello, User!";
}
}
```
在这个示例中,我们定义了三个接口:`/api/hello`,`/api/admin`和`/api/user`。其中,`/api/hello`是公共接口,任何人都可以访问;`/api/admin`和`/api/user`则需要有相应的权限才能访问。
我们通过`@PreAuthorize`注解来实现权限控制。`@PreAuthorize`注解用于在方法执行之前对用户的权限进行验证。在上面的例子中,我们使用了`hasRole`表达式来判断用户是否具有相应的角色。如果用户没有相应的角色,则会抛出`AccessDeniedException`异常。
除了`hasRole`表达式之外,Spring Security还支持其他类型的表达式,例如`hasAuthority`、`hasAnyRole`、`hasIpAddress`等等。具体使用方法可以参考Spring Security的官方文档。