官方git地址:https://gitee.com/itmuch/light-security/tree/master
引入maven
<dependency> <groupId>com.itmuch.security</groupId> <artifactId>light-security-spring-boot-starter</artifactId> <version>1.0.1-RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
配置文件
server:
port: 8009
light-security:
# 权限规则配置:表示用{http-method}方法请求的{path}路径必须具备什么{expression}
spec-list:
- http-method: ANY
path: /login
expression: "anon()"
- http-method: ANY
path: /user
expression: "hasAnyRoles(‘user‘,‘admin‘)"
- http-method: ANY
path: /user-no-access
expression: "hasAllRoles(‘user‘,‘admin‘,‘xx‘)"
- http-method: GET
path: /error
expression: "anon()"
- http-method: ANY
path: /**
expression: "hasLogin()"
jwt:
# jwt sign算法
algorithm: hs512
# jwt secret
secret: {secret}
# jwt 有效时间
expiration-in-second: 1209600
代码示例
@RequestMapping
@RestController
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class TestController {
private final UserOperator userOperator;
private final JwtOperator operator;
/**
* 演示如何获取当前登录用户信息
* - 该路径需要具备user或admin权限才可访问,详见application.yml
*
* @return 用户信息
*/
@GetMapping("/user")
public User user() {
return userOperator.getUser();
}
/**
* 模拟登录,颁发token
*
* @return token字符串
*/
@GetMapping("/login")
public String loginReturnToken() {
User user = User.builder()
.id(1)
.username("张三")
.roles(Arrays.asList("user", "admin"))
.build();
//也可以以下这种方式
User user = User.builder()
.id("用户ID")
.username("用户名")
.build();
return operator.generateToken(user);
}
}
然后前端访问的时候要携带请求头
格式为
Authorization:Bearer token
这里的token替换成上面颁发的token 注意Bearer和token之间有个空格
原文:https://www.cnblogs.com/pxblog/p/14446623.html