互动
最近评论
即刻短文
分享生活的小确幸
使用 Halo/Moment插件 构建
  • oracle 死锁

    select t1.sid, t1.SERIAL#, t3.sql_text from v$session t1, v$locked_object t2, v$sql t3 where t1.sid = t2.SESSION_ID AND t3.hash_value = t1.sql_hash_value;

  • oracle 查询约束

    SELECT * FROM user_constraints WHERE CONSTRAINT_NAME = 'SYS_C0029063'

  • oracle 导出DUMP

    create directory DUMP as '/oracle/soft';
    select * from dba_directories where directory_name = 'DUMP';
    
    export ORACLE_HOME=/oracle/app/oracle/product/19.3.0/dbhome_1
    cd $ORACLE_HOME/bin
    ./expdp his/rqfd*317@127.0.0.1/his schemas=his directory=DUMP include="(PROCEDURE,TABLE,FUNCTION)" schemas="(DATAYL,HEALTH,HIS,LIS,PACS)" dumpfile=source_data.dmp logfile=source_exp.log
    
    ./impdp his/rqfd*317@127.0.0.1/his schemas=his directory=DUMP TABLE_EXISTS_ACTION=REPLACE dumpfile=source_data.dmp logfile=target_imp.log

  • oracle在函数、视图中搜索

    select * from dba_source 
    where text like 'jiuruikang%' 
    and type='PROCEDURE'

  • oracle全库查询

    declare
      v_Sql   varchar2(2000);
      v_count number;
    begin
      for xx in (select t.OWNER, t.TABLE_NAME, t.COLUMN_NAME from dba_tab_columns t where t.OWNER = '要查询的SCHEMA') loop
        begin
          v_Sql := 'select count(1) from ' || xx.owner || '.' || xx.table_name ||' where ' || LOWER(xx.column_name) || ' like ''%检索关键字%'' ';
          execute immediate v_Sql
            into v_count;
          if (v_count >= 1) then
            dbms_output.put_line(xx.table_name || ':' || xx.column_name || ':' || v_Sql);
          end if;
        exception
          when others then
            null;
        end;
      end loop;
    end;

  • 1. 统一授权中心系统

    1.1 用户管理

    • 用户注册与登录:提供接口供用户注册和登录,支持多种身份验证方式(如用户名密码、第三方登录等)。

    • 用户信息管理:提供接口管理用户信息,如修改密码、更新个人信息等。

    1.2 OAuth2 服务

    • 授权服务器:实现OAuth2协议,提供授权码模式(Authorization Code Flow)、简化模式(Implicit Flow)等,根据客户端类型选择合适的授权流程。

    • 令牌颁发:颁发Access Token和Refresh Token,并支持Token的撤销和刷新。

    • 客户端管理:管理客户端(如系统A和系统B)的注册信息,包括client_id、client_secret、回调URL等。

    1.3 RBAC 权限管理

    • 角色管理:定义角色,并为角色分配权限。

    • 权限管理:定义权限,并将权限与资源(如API接口)关联。

    • 用户角色分配:为用户分配角色。

    2. 系统A(微信小程序)

    2.1 登录与授权

    • 微信登录:使用微信小程序的登录机制获取微信用户的openid等信息。

    • OAuth2 授权:将微信登录与OAuth2结合,用户通过微信登录后,授权中心系统颁发Access Token。

    • 权限控制:在小程序端,根据Access Token中的角色和权限信息,控制用户对不同功能的访问。

    2.2 API 访问

    • Token 传递:在调用后端API时,将Access Token放在请求头中进行身份验证和权限检查。

    3. 系统B(独立的Web程序)

    3.1 登录与授权

    • OAuth2 登录:用户通过OAuth2授权流程登录,选择授权系统B访问其信息。

    • 权限控制:在Web程序中,根据Access Token中的角色和权限信息,控制用户对不同页面或功能的访问。

    3.2 API 访问

    • Token 传递:在调用后端API时,将Access Token放在请求头中进行身份验证和权限检查。

    4. 权限分离与控制

    4.1 角色与权限定义

    • 角色定义:定义不同的角色,如“普通用户”、“管理员”等。

    • 权限定义:定义不同的权限,如“查看用户信息”、“修改用户信息”等。

    • 角色权限分配:将权限分配给角色。

    4.2 用户角色分配

    • 用户角色分配:为用户分配一个或多个角色。

    • 权限继承:用户通过其角色继承相应的权限。

    4.3 权限检查

    • API权限检查:在授权中心系统中,对每个API接口进行权限检查,确保只有具有相应权限的用户才能访问。

    • 前端权限控制:在系统A和系统B中,根据用户的权限信息,控制前端页面的显示和功能的可用性。

    5. 安全考虑

    • Token 安全:确保Access Token和Refresh Token的安全性,防止Token泄露和滥用。

    • Session管理:如果使用Session机制,确保Session的安全性,如设置合适的过期时间、HttpOnly标志等。

    • 跨域安全:如果系统A和系统B与授权中心系统跨域,确保CORS配置的安全性。

    6. 技术选型

    • 授权中心系统:可以使用Spring Security OAuth2或Keycloak等开源框架来实现OAuth2和RBAC功能。

    • 数据库:使用关系型数据库(如MySQL)来存储用户、角色、权限等信息。

    • API网关:可以使用API网关(如Spring Cloud Gateway)来统一管理API的路由和权限检查。

    7. 实施步骤

    1. 设计数据库模型:设计用户、角色、权限、客户端等表结构。

    2. 实现OAuth2服务:集成OAuth2框架,实现授权服务器和令牌颁发功能。

    3. 实现RBAC权限管理:实现角色、权限的管理功能,并将权限与API资源关联。

    4. 集成系统A和系统B:在系统A和系统B中集成OAuth2登录流程,并进行权限检查。

    5. 测试与优化:进行全面的测试,确保安全性和功能性,并根据测试结果进行优化。


  • wireguard的局限性

    首先是必须得有公网ip

    然后它的理念是设备之间组网而非域之间的组网,即两个不同网络见的两台设备进行通信。

    而要实现手机(流量)访问某个局域网就得有中专服务器来配置流量转发,但如果有两个同网段的想互通就得通过添加配置(一个配置一个虚拟网卡)来实现,但是目前就只有docker的那个面板,还不支持多配置


  • Docker 不同网络的容器之间互相访问

    按照Docker官方文档Docker and iptables说明,使用iptables进行网络隔离,使得默认情况下不同子网的容器之间是无法互相访问的。如果需要不同子网的容器之间互相访问时怎么办呢?文档给出了两种方法

    1、禁用iptables

    最直接的方法是在/etc/docker/daemon.json把iptables设置为false来直接禁用。这样所有的网络都没有隔离,但是这样做可能会破坏容器的网络。

    2、使用DOCKER-USER链

    可以通过iptables在DOCKER-USER链上添加规则以达到使用的目的。

    iptables -I DOCKER-USER -i br-3bed419583c5 -o br-787e52a81bb4 -j ACCEPT

    iptables -I DOCKER-USER -i br-787e52a81bb4 -o br-3bed419583c5 -j ACCEPT


- 只展示最近30条短文 -

评论
你无需删除空行,直接评论以获取最佳展示效果
引用到评论