項目地址:https://gitee.com/wushusong/wss-auth
快速接入
1、引入依赖
<dependency>
<groupId>io.github.wushusong</groupId>
<artifactId>wss-auth</artifactId>
<version>1.0.2</version>
</dependency>2、增加配置
package com.wss.config;
import com.wss.auth.filter.WssAuthFilter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SecurityConfig {
@Bean
public WssAuthFilter wssSecurityFilter(){
WssAuthFilter wssSecurityFilter = new WssAuthFilter();
// 添加拦截的url
wssSecurityFilter.addIncludeUrl("/**");
// 添加放行的url
wssSecurityFilter.addExcludeUrl("/test/t2");
wssSecurityFilter.addExcludeUrl("/test/t3/*");
return wssSecurityFilter;
}
}3、增加登录接口
package com.wss.controller;
import com.wss.auth.annotation.WssIgnore;
import com.wss.auth.utils.WssAuthUtils;
import com.wss.common.core.collection.ListUtils;
import com.wss.result.R;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@WssIgnore
@RestController
@RequestMapping(value = "/auth")
public class LoginController {
@PostMapping(value = "/login")
public R<?> login(@RequestParam(value = "username")String username,
@RequestParam(value = "password")String password){
//TODO 自己校验账号密码
List<String> permission = ListUtils.addAll("sys_log_view", "sys_log_save");
List<String> role = ListUtils.addAll("admin", "user");
String token = WssAuthUtils.login("1", permission, role, null);
return R.ok(token);
}
@PostMapping(value = "/getLoginInfo")
public R<?> getLoginInfo(){
return R.ok(WssAuthUtils.getTokenInfo());
}
}4、增加测试接口
package com.wss.controller;
import com.wss.auth.annotation.WssCheckPermission;
import com.wss.auth.annotation.WssIgnore;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/test")
public class TestController {
@GetMapping(value = "/t1")
public Object t1(){
return "success";
}
@GetMapping(value = "/t2")
public Object t2(){
return "success";
}
@GetMapping(value = "/t3/t1")
public Object t3(){
return "success";
}
@WssCheckPermission(value = {"sys_log_view"})
@GetMapping(value = "/t4")
public Object t4(){
return "success";
}
@WssCheckPermission(value = {"sys_log_edit"})
@GetMapping(value = "/t5")
public Object t5(){
return "success";
}
@WssIgnore
@GetMapping(value = "/t6")
public Object t6(){
return "success";
}
}5、yml配置
# 应用服务 WEB 访问端口
server:
port: 31002
wss:
tokenType: redis # jwt/redis
tokenExpire: 1 # 小时
jwt:
security: 2IDHJfWYZtInDeJ1 # 16字节的密钥
spring:
redis:
host: jm-cloud-redis
port: 6379
# 数据库索引
database: 3
# 密码
password: 123456
# 默认使用 lettuce 连接池
lettuce:
pool:
max-active: 18 #连接池最大连接数,为负数则没有限制
max-idle: 16 #连接池最大空闲连接
min-idle: 0 #连接池最小空闲连接
max-wait: 5000 #连接池最大阻塞等待时间,为负数则没有限制
shutdown-timeout: 1000 #关闭超时时间6、测试




