Solon

solon.web.sdl

v2.7.5 </> markdown
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon.web.sdl</artifactId>
</dependency>

1、描述

校验扩展插件,本质是 “solon.validation” LoginedChecker 接口的能力适配。为 Solon Web 提供简单的 “单设备登录 ”支持(是否使用令牌无所谓)。v2.2.11 后支持

2、代码应用

  • 配置与构建
demo.redis:
  server: "localhost:6379"
@Configuration
public class SdlConfig {
    @Bean
    public SdlStorage sdlService(@Inject("${demo.redis}") RedisClient redisClient) {
        //确定 Sdl 的标识存储器 //临时测试也可以用 SdlStorageOfLocal //也可以自己实现个
        return new SdlStorageOfRedis(redisClient);
    }

    @Bean
    public LoginedChecker sdlLoginedChecker() {
        //确定登录注解的检测器
        return new SdlLoginedChecker();
    }
}
  • 代码应用:登录示意代码
@Controller
public class LoginController {
    @Mapping("/login")
    public void login(String username, String password){
        if (username == "test" && password == "1234") {
            //获取登录的用户id
            long userId = 1001;
            //登录
            SdlUtil.login(userId);
        }
    }
    
    @Mapping("logout")
    public void logout() {
        //退出
        SdlUtil.logout();
    }
}
  • 代码应用:SDL 校验示意代码
@Logined //可以使用验证注解了,并且是基于 sdl 进行校验的
@Controller
public class AdminController extends BaseController{
    @Mapping("test")
    public String test(){
        return "OK";
    }
}

3、了解手动控制接口

因为定位简单的,所以只提供三个接口

接口说明
SdlUtil.login(userId)登录
SdlUtil.logout()退出当前用户
SdlUtil.isLogined()判断是否已登录

具体可参考

https://gitee.com/noear/solon-examples/tree/main/3.Solon-Web/demo3025-sdl