微服务统一登录认证JWT

摘要:
用户登录后,我们把登录者的信息保存在服务端 session 中,并且给用户一个 cookie 值,记录对应的 session。微服务集群中的每个服务,对外提供的都是 Rest 风格的接口。加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,无法根据密文推算出明文。secret 是签名的关键,因此一定要保密,我们放到鉴权中心保存,其它任何服务中都不能获取 secret。

无状态登录原理

1.1.什么是有状态?

阅读更多

Linux 修改目录权限

1. 实例:

查看权限:

1
ls -l xxx.xxx 注:xxx.xxx是文件名,或者不写文件名则是当前目录下所有文件

修改某个目录下的所有文件的权限,包括子目录中的文件,例子如下:

1
2
3
4
5
chmod 777 /home/user
注:仅把/home/user目录的权限设置为rwxrwxrwx
chmod -R 777 /home/user
注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx`
其中,参数`-R`表示启动递归处理
阅读更多

oracle ACL 操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
begin
dbms_network_acl_admin.create_acl ( -- 创建访问控制文件(CL)
acl => 'httprequestpermission.xml', -- 文件名称
description => 'HTTP Access', -- 描述
principal => 'user', -- 授权或者取消授权账号,大小写敏感
is_grant => TRUE, -- 授权还是取消授权
privilege => 'connect', -- 授权或者取消授权的权限列表
start_date => null, -- 起始日期
end_date => null -- 结束日期
);
commit;
end;
begin
dbms_network_acl_admin.add_privilege ( -- 添加访问权限列表项
acl => 'httprequestpermission.xml', -- 刚才创建的cl名称
principal => 'user', -- 授权或取消授权用户
is_grant => TRUE, -- 与上同
privilege => 'resolve', -- 权限列表
start_date => null,
end_date => null
);
commit;
end;
begin
dbms_network_acl_admin.assign_acl ( -- 该段命令意思是允许访问cl名为tl_http.xml下授权的用户,使用racle网络访问包,所允许访问的目的主机,及其端口范围。
acl => 'httprequestpermission.xml',
host => '127.0.0.1', -- ip地址或者域名,填写ttps://localhost:9000/hello与ttps://localhost:9000/是会报ost无效的
-- 且建议使用p地址或者使用域名,若用ocalhost,当racle不是安装在本机上的情况下,会出现问题
lower_port => 389, -- 允许访问的起始端口号
upper_port => Null -- 允许访问的截止端口号
);
commit;
end;

oracle 存储过程执行java进行密码加密成LDAP方式2

步骤

1.先写 java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import sun.misc.BASE64Encoder;


public class PwdToLdap {

public static String ldapSHA(String pwd) {
byte[] md = hexStringTobyteArray(pwd);
return "{SHA}" + (new BASE64Encoder()).encode(md);
}

public static byte[] hexStringTobyteArray(String str) {
if(str == null || str.trim().equals("")) {
return new byte[0];
}


byte[] bytes = new byte[str.length() / 2];
for(int i = 0; i < str.length() / 2; i++) {
String subStr = str.substring(i * 2, i * 2 + 2);
bytes[i] = (byte) Integer.parseInt(subStr, 16);
}
return bytes;
}


}
阅读更多

oracle 存储过程执行java进行密码加密成LDAP方式

步骤

1.先写 java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import sun.misc.BASE64Encoder;


public class PwdToLdap {

public static String ldapSHA(String pwd) {
byte[] md = hexStringTobyteArray(pwd);
return "{SHA}" + (new BASE64Encoder()).encode(md);
}

public static byte[] hexStringTobyteArray(String str) {
if(str == null || str.trim().equals("")) {
return new byte[0];
}


byte[] bytes = new byte[str.length() / 2];
for(int i = 0; i < str.length() / 2; i++) {
String subStr = str.substring(i * 2, i * 2 + 2);
bytes[i] = (byte) Integer.parseInt(subStr, 16);
}
return bytes;
}


}
阅读更多

扩展linux系统根目录大小

情况说明:添加新的硬盘,然后扩容根目录大小

  1. 查看新增的磁盘分区,新增磁盘分区/dev/sdb ,大小 100GB
1
[root@localhost ~]# fdisk -l
阅读更多