【笔记】项目工作中总结(二)

OAuth2- jwks终端转RSA公钥

        <!-- jwks convert -->
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>jwks-rsa</artifactId>
            <version>0.9.0</version>
        </dependency>

            // JwkProviderBuilder里边默认包含了后缀:".well-known/jwks.json"
            JwkProviderBuilder jpb = new JwkProviderBuilder(oauth2Uri + "/oauth/");
            JwkProvider jp = jpb.build();
            Jwk jwk = jp.get(keyId);
            rsaPublicKey = jwk.getPublicKey();
            logger.info("初始化RSA公钥完成......");

Linux

find / -iname jenkins

Dockerfile
CMD java -jar jarfile.jar --spring.profiles.active=alidev --jasypt.encryptor.password=XXXWeChat

Sqlserver数据库授权

-- 切换到创建数据库
use MISC_WMP_AUTH;
go

-- 创建登录账户
create login xxx_admin with password='4r0qzxzs56h3!', default_database=XXX_AUTH; 
go

-- 创建数据库用户
create user user_xxx_auth for login xxx_admin with default_schema=dbo;
go

-- 用户授权
exec sp_addrolemember 'db_owner', 'user_xxx_auth';
go
 

遗留问题

  1. 重写异常继承问题;
  2. 基于时间的 OTP(一次性密码)
  3. 全局读取角色权限;当前用户名等;
  4. mybatis plus几级缓存
  5. BaseResult Object T ? 查看
  6. TokenThreadLocal.remove(); 记录日志的时候

SSH Tools

https://info.ssh.com/tectia-ssh-client-trial-download
SSH Secure Shell Client - WinSCP - Putty - FileZilla Client

Lambda

        // SlicInfoForm
        List<SlicInfoForm> slicInfoFormList = collect.stream().map(i -> {
            SlicInfoForm form = new SlicInfoForm();
            BeanUtils.copyProperties(i, form);
            return form;
        }).collect(Collectors.toList());


        LambdaQueryWrapper<UmsRole> wrapper =
            Wrappers.<UmsRole>lambdaQuery().select(UmsRole::getRoleCode).eq(UmsRole::getStatus, StatusConsts.NORMAL);
        return umsRoleService.list(wrapper).stream().map(UmsRole::getRoleCode).collect(Collectors.toList());

横向扩展:比如可以增加一台节点/机器 比如:mysql新增加一个从库、tomcat新增加一台机器;
纵向扩展:比如可以通过修改mysql参数内存比例、修改tomcat的线程数;

jwt获取payload写法

            JWSObject jwsObject = JWSObject.parse(realToken);
            String userStr = jwsObject.getPayload().toString();
            UserDTO userDto = JSONUtil.toBean(userStr, UserDTO.class);

		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-oauth2-jose</artifactId>
		</dependency>

常用开头语

Can you spare me a few minutes?
Can you give me some time?

maven管理技巧

        <dependency>
            <groupId>com.macro.mall</groupId>
            <artifactId>mall-common</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-data-redis</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

如何获取Request对象(在security loadByUsername很有用)

    @Autowired
    private HttpServletRequest request;

设置全局参数:

RequestContextHolder.setRequestAttributes(context);

BFF

(Back-end For Front-end)

SpringCloud常见微服务总结-

服务治理(Eureka、Consul、Nacos),调用(Ribbon、Feign),降级、熔断(Hystrix),网关(Gateway)

微服务项目设计:

猜你喜欢

转载自blog.csdn.net/qq_26878363/article/details/111920993