facecto.com

这个需求很简单,怎么实现我不管

中文 / English

  • 首页

  • 文章

  • 课程

  • 笔记

  • 开源

  • 关于

  • 搜索

Jon开源的项目

时间: 2021-12-08 | 字数: 1001 字 | 阅读: 2分钟 | 阅读次数:

开源是一项有乐趣的事情。目前开源的项目有:

  • facecto-code-base-starter
  • facecto-code-token-starter
  • facecto-code-safe-starter
  • facecto-code-base-utils
  • facecto-code-base-excel

进行中的有:

  • facecto-code-core-anypay
  • rhinos
  • rhinos cloud

facecto-code-base-starter 标准响应和异常封装

使用方式

maven引用如下

<dependency>
  <groupId>com.facecto.code</groupId>
  <artifactId>facecto-code-base-starter</artifactId>
  <version>1.1.0</version>
</dependency>

使用

import com.facecto.code.base.CodeResult

Codresult.ok("")

facecto-code-token-starter 通用token组件

使用方式

maven引用如下

<dependency>
  <groupId>com.facecto.code</groupId>
  <artifactId>facecto-code-token-starter</artifactId>
  <version>1.0.0</version>
</dependency>

配置application.yaml

app:
  safe:
    token-key: 字符串格式 Token Key
    token-name: true|false. Token 名称
    secret: 字符串格式,Token加密串,例如:"3d15d32654bc1af61759a3bacbc0c78a"
    expire: 数字格式,Token过期时间(秒)

创建shiro配置类

import com.facecto.code.token.AuthFilter;
import org.apache.shiro.mgt.SecurityManager;
import org.springframework.context.annotation.Bean;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.springframework.context.annotation.Configuration;

import javax.servlet.Filter;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
@Configuration
public class ShiroConfig {
    @Bean("shiroFilter")
    public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {
        ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
        shiroFilter.setSecurityManager(securityManager);
        Map<String, Filter> filters = new HashMap<>();
        filters.put("oauth2", new AuthFilter());
        shiroFilter.setFilters(filters);
        Map<String, String> filterMap = new LinkedHashMap<>();
        filterMap.put("/login", "anon");
        filterMap.put("/**", "oauth2");
        shiroFilter.setFilterChainDefinitionMap(filterMap);
        return shiroFilter;
    }
}

添加扫描路径

@ComponentScans({
        @ComponentScan(basePackages = {
                "com.facecto.code"
        })
})
@EnableConfigurationProperties(TokenProperties.class)
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class,args);
    }
}

注意

需要redis

这个组件使用redis来访问相关的授权信息。Redis必须在SpringBoot项目中引入。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

示例

app.token.key的默认值是 “adm-token”。 简单模式。如果你不使用 shiro 的授权和验证功能,你可以使用简单模式。简单模式允许你在一个项目中使用多个自定义密钥。

Token token = generateTokenSimple("app-1", userId);

facecto-code-safe-starter 安全组件

使用方式

maven引用如下

<dependency>
  <groupId>com.facecto.code</groupId>
  <artifactId>facecto-code-safe-starter</artifactId>
  <version>1.1.0</version>
</dependency>

配置application.yaml

app:
  safe:
    has-rsa: true|false 布尔值
    has-dynamic: true|false 布尔值
    iv: "xxxx" 字符串,例如: "1234567890123456"
    key: "xxxx" 字符串,例如: "01234567891234560123456789123456"
    secret: "xxxx" 字符串,例如: "1829b4abbba0794301a075fc2283d2ba"    
    pri-key: "xxxx" 字符串,例如: "MIIEvQIBADANBgkqh...."

使用加密注解

示例:

    @GetMapping(value = "/user")
    @Encrypt
    public CodeResult getUser(){
        User u = new User()
                .setEmail("ijonso123@gmail.com")
                .setId(1)
                .setName("JonSo");
        return CodeResult.ok("OK", u);
    }

示例返回值:

{
    "code": 0,
    "message": "OK",
    "sign": "46E5FC4DF302BF74F66666C3DBC05810CCBB486B",
    "data": "97XVcP9tJ7Vh7glQlc4R/SpSDKI6gWKcZHnmqfrSkpKUQmkTe4fYtw83qKgz5tTGkeMyaC9F4UmzGPqDVxa0U2A5h/jRn1eUnYvHFARky6ZWY99VFBJ3WDHYQBBZTK9P11C4a1J+Zw=="
}

使用解密注解

示例:

    @PostMapping(value = "/user")
    public CodeResult setUser(@RequestBody @Decrypt User u){
        return CodeResult.ok("OK",u);
    }

接口参数:

{
    "sign": "46E5FC4DF302BF74F66666C3DBC05810CCBB486B",
    "data": "97XVcP9tJ7Vh7glQlc4R/SpSDKI6gWKcZHnmqfrSkpKUQmkTe4fYtw83qKgz5tTGkeMyaC9F4UmzGPqDVxa0U2A5h/jRn1eUnYvHFARky6ZWY99VFBJ3WDHYQBBZTK9P11C4a1J+Zw=="
}

示例返回值:

{
    "data": {
        "id": 1,
        "name": "JonSo",
        "email": "ijonso123@gmail.com"
    },
    "code": 0,
    "message": "OK",
    "status": "SUCCESS"
}

facecto-code-base-utils 工具组件

使用方式

maven引用如下

<dependency>
  <groupId>com.facecto.code</groupId>
  <artifactId>facecto-code-base-utils</artifactId>
  <version>1.1.0</version>
</dependency>

工具介绍

分布式ID

  • ID生成器是基于twitter雪花的。
  • 用于生成带有日期的顺序代码。
  • 前8位是年、月和日期。
  • 第9位是微服务代号,取值范围为0-15(显示为十六进制0-9A-F)。
  • 第10位是机器代号,取值范围为0-15(以十六进制显示为0-9A-F)。
  • 最后14位是序列代码。
  • Example: 20211202AB10098259438592
  • 从版本:1.1.0开始

Yaml配置器

  • 主要是用于yaml解析

STS的token生成器

  • 阿里云OSS基于STS的token生成

字符串替换工具

  • 手机号脱敏
  • 身份证号脱敏

Map工具类

  • Map取值和转化

HTTP工具

  • 获得域名等

日期工具

  • 日期转化等

字符工具

  • 字符串转化等

facecto-code-base-excel EXCEL工具

二次封装于EasyExcel

使用方式

maven引用如下

<dependency>
  <groupId>com.facecto.code</groupId>
  <artifactId>facecto-code-base-excel</artifactId
  <version>1.0.0</version>
</dependency>

工具介绍

主要用于excel的格式导出。

标题:Jon开源的项目

链接:https://facecto.com/github.html

作者:Jon So

声明: 本站文章除特别声明外,均采用 CC BY-NC-SA 3.0许可协议,转载请注明出处。

如果喜欢作者的文章,可以打赏博主杯咖啡
WeChat Pay

微信打赏

Alipay

支付宝打赏

关于Facecto.com
Jon So

Jon So

做一个敢想的开发者

5 文章
1 课程
1 笔记
GitHub Gitee
标签云
  • Java
  • Thread
  • 线程
  • Centos安装
  • Jdk8
  • Maven
  • Visualbox
© 2016 - 2021 facecto.com Hugo v0.90.1 NexT 闽ICP备15005909号-1
0%