com.skyail:skyail-starter-auth-security

skyail综合开发框架

License

License

Categories

Categories

Security
GroupId

GroupId

com.skyail
ArtifactId

ArtifactId

skyail-starter-auth-security
Last Version

Last Version

1.0.3-RELEASE
Release Date

Release Date

Type

Type

jar
Description

Description

skyail综合开发框架

Download skyail-starter-auth-security

How to add to project

<!-- https://jarcasting.com/artifacts/com.skyail/skyail-starter-auth-security/ -->
<dependency>
    <groupId>com.skyail</groupId>
    <artifactId>skyail-starter-auth-security</artifactId>
    <version>1.0.3-RELEASE</version>
</dependency>
// https://jarcasting.com/artifacts/com.skyail/skyail-starter-auth-security/
implementation 'com.skyail:skyail-starter-auth-security:1.0.3-RELEASE'
// https://jarcasting.com/artifacts/com.skyail/skyail-starter-auth-security/
implementation ("com.skyail:skyail-starter-auth-security:1.0.3-RELEASE")
'com.skyail:skyail-starter-auth-security:jar:1.0.3-RELEASE'
<dependency org="com.skyail" name="skyail-starter-auth-security" rev="1.0.3-RELEASE">
  <artifact name="skyail-starter-auth-security" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.skyail', module='skyail-starter-auth-security', version='1.0.3-RELEASE')
)
libraryDependencies += "com.skyail" % "skyail-starter-auth-security" % "1.0.3-RELEASE"
[com.skyail/skyail-starter-auth-security "1.0.3-RELEASE"]

Dependencies

compile (12)

Group / Artifact Type Version
com.skyail : skyail-starter-common jar 1.0.1-RELEASE
org.springframework.boot : spring-boot-starter-security jar 2.1.5.RELEASE
org.springframework.security.oauth : spring-security-oauth2 jar 2.3.5.RELEASE
org.springframework.boot : spring-boot-starter-web jar 2.3.1.RELEASE
com.baomidou : mybatis-plus-boot-starter jar 3.4.0
mysql : mysql-connector-java jar 8.0.22
com.alibaba : druid jar 1.1.22
org.springframework.security : spring-security-jwt jar 1.0.10.RELEASE
io.jsonwebtoken : jjwt jar 0.9.1
com.alibaba : fastjson jar 1.2.72
org.hibernate : hibernate-validator jar 6.1.6.Final
com.skyail : skyail-starter-launch jar 1.0.1-RELEASE

provided (1)

Group / Artifact Type Version
org.projectlombok : lombok jar 1.18.12

Project Modules

There are no modules declared in this project.

Skyail

一套简单、易用、专注开发细节的java开发框架,内容囊括java轻应用开发,企业级应用开发,大数据应用开发,前端应用开发等。以企业中遇到的真实问题为背景,集成当下最新的、轻量的、实用的功能或者组件,让日常开发更快速,更省心。

-----------------------------------------------------------------------

skyail-hummingbird 蜂鸟(蜂鸟虽小,五脏俱全)

轻量、易用、注重开发细节的快速开发项目。可以用于日常任务、数据处理、业务接口等场景。

一。全套后端代码自动生成

1.配置generator.properties

#数据库连接信息
driver=org.sqlite.JDBC
url=jdbc:sqlite:./db/db.db?date_string_format=yyyy-MM-dd HH:mm:ss
username=
password=
#表名称,多张表之间用,分隔
table_names=s_user
#模块名称
module_name=
#代码根目录名称
base_dir=com.skyail

2.执行CodeGenerator中的main方法生成代码

二。支持多种数据源

1.mysql

2.oracle

3.postgresql

4.sqlite

三。认证相关

1.token的用户名密码设置

通过 application.yml 中的 auth.user 节点进行设置。

auth:
  user:
    username: admin
    password: 71d8b5968604e655c8a7a8a254b8f8c6

2.自定义用户加载逻辑

可以用于自定义加载用户名密码逻辑,比如从数据库中加载用户名和密码等。

2.1首先开启自定义用户加载

auth:
  custom-user: false

2.2自定义service,实现接口 ICustomUserService

@Service
public class CustomUserServiceImpl implements ICustomUserService{

    @Override
    public User loadUserInfo(String username) {
        User user = new User();
        //可以从数据库中加载用户信息
        user.setPassword("71d8b5968604e655c8a7a8a254b8f8c6");
        user.setUsername("admin");
        return user;
    }
}

3.认证放权

3.1 方式一:通过注解 @AuthIgnore 来跳过token认证。

@GetMapping("/findByCondition")
@AuthIgnore
public R findByCondition(String name ){
    Test test = new Test();
    test.setName(name);
    QueryWrapper wrapper = new QueryWrapper(test);
    return R.data(service.list(wrapper));
}

3.2 方式二:通过在配置文件中配置:auth.ignore来跳过token认证。

auth:
  ignore:
    - /test/findByCondition
    - /test_new/**

四。国密算法

集成 SM2、SM3、SM4国密算法,加密更高效、更安全。

五。开发细节支持

1.XSS防御。增强系统防护能力。

#xss过滤
xss:
  enable: true
  excludes:
    #- /test/*
    #- /test1/*

2.接口参数自动trim。统一处理接口首位空字符问题。

#接口输入参数自动trim
auto-trim:
  enable: true

3.便捷接口参数校验。通过注解的方式对接口参数进行校验。

3.1 第一步 在 entity 中添加注解

@NotNull(message = "id不能为空")
private Integer id;

3.2 第二步 在 controller中开启校验

@GetMapping("/testValidate")
public String testValidate(@Validated Test test){
    if(!StringUtils.isEmpty(test.getId())){
        return "id is "+test.getId();
    }
    return null;
}

4.缓存支持。

@Service
@EnableCaching
@Slf4j
public class TestServiceImpl extends ServiceImpl<TestMapper, Test> implements ITestService {

    @Override
    @CachePut(value = "test")
    public Test saveTest(Test test) {
        baseMapper.insert(test);
        return test;
    }

    @Override
    @Cacheable(value = "test")
    public List<Test> findTest(long id) {
        log.info("here is find");
        Test test = new Test();
        test.setId(1);
        QueryWrapper wrapper = new QueryWrapper(test);
        return baseMapper.selectList(wrapper);
    }

    @Override
    @CacheEvict(value = "test")
    public void deleteTest(long id) {
        baseMapper.deleteById(id);
    }
}

5.统一异常处理。

实现异常的统一处理,无需再设置异常处理逻辑。

6.接口返回包装。

@PostMapping("/findByConditionPost")
public R findByConditionPost( @RequestBody Test test ){
    QueryWrapper wrapper = new QueryWrapper(test);
    return R.data(service.list(wrapper));
}

Versions

Version
1.0.3-RELEASE
1.0.1-RELEASE
1.0-RELEASE