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
遗留问题
- 重写异常继承问题;
- 基于时间的 OTP(一次性密码)
- 全局读取角色权限;当前用户名等;
- mybatis plus几级缓存
- BaseResult Object T ? 查看
- 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)
微服务项目设计: