背景

客户内网环境需要通过vpn连接,vpn只有windows版本,我工作用的都是mac,导致每次要连个vpn都得开虚拟机,而且很多开发软件在windows中没有替代品,导致开发效率很低,总之就是各种不方便,后面才知道windows自带端口转发工具,试用了下效果还不错。

实现

比如对方系统地址http://192.168.25.1:7001,你在虚拟机里设置端口转发到该系统后,就可以使用虚拟机地址进行访问。用管理员打开命令行窗口,输入以下命令

Read the rest of this entry

补丁下载

oracle每个季度都会更新一次补丁,可以从这里下载oracle产品每个季度的补丁,点击去后,在左边找到你的产品,点击右边进入补丁下载

补丁下载需要登录oracle support,你必须先注册一个support账号,进入后在产品列表找到产品

Read the rest of this entry

介绍

Oracle Identity Manager简称OIM是Oracle公司开发企业身份管理应用,主要是负责企业用户信息,组织信息的同步,依靠强大的连接器,OIM几乎可以从任何系统中同步用户,并且同步至任何系统,并且这些工作都是通过配置完成,要在异构系统间中做到配置式的同步,需要对整个系统进行高度抽象,也正因此,OIM有众多新概念,如果不理解这些概念的作用,很难灵活的使用OIM。本篇文章将OIM中常用的概念进行整理,包括以下内容
  • 连接器(Connector)
  • 适配器(Adapter)
  • IT资源(IT Resource)
  • 表单(Form)
  • 流程(Process)
  • 资源对象(Resource Object)
  • 预配(Prepopulate)

Read the rest of this entry

背景

今年至少已经有3个人问了我同样的问题osb很无聊,不能写代码,没有写代码的快感,他们的疑惑我也是能理解,作为一个程序员,做开发不写代码就像厨师炒菜不用锅铲一样,很容易产生来自灵魂的拷问,“我是谁,我在哪,我在干嘛”。先说结论,osb是我从业以来最喜欢的产品,也是我觉得做的最牛逼的产品,这个想法至今没有改变过。我疑惑的是,为什么我们当初学osb的时候没有人有这疑问?

国庆期间陪老婆去散步,看到一排竹子,我跟老婆说,小时候我们很喜欢用竹做枪,野果做子弹,现在已经没人玩了,老婆说,现在小孩有手机,有平板,有电脑,谁还会去玩这个。这个有点像我们当年做开发,没有容器,没有微服务,没有spring boot,所有的开发都得从最基础的做起,很多接口都是直接用servlet开发,要是有人跟我们说有个东西能够不用写代码就可以写接口,肯定是不信的,但osb就是这么个东西,所以当年对osb格外的喜欢。现在程序员,不管前端还是后端都有各种各样的框架支持,一句话,都是给惯的。

那么osb过时了吗?并没有。

Read the rest of this entry

背景

某项目有两个外网的站点a.site1.comb.site2.com需要通过definesys.com进行代理,代理后的地址

  • a.definesys.com => a.site1.com
  • b.definesys.com => b.site2.com

a和b都是托管在vps站点上。

CNAME

接到这个任务时,以为很简单,到definesys.com域名后台增加两个域名,并且将CNAME指向代理的站点即可,但还是想简单了,这里简单介绍下vps托管站点的原理,vps就是大家所说的虚拟主机,相比云服务器,vps具有价格低,部署简单,监控方便等特点,所以很多站点都会托管到vps上,但我们都知道vps供应商不可能一台服务器只部署一个站点,肯定想法设法压榨服务器资源,一台服务器可能部署了上千个站点,那么是如何实现几千个站点都可以通过80端口进行访问,我在之前的这篇文章中有介绍过方法,就是根据访问的host进行路由达到访问不同站点的目的。

Read the rest of this entry

背景

长久以来都想找一个画流程图的工具,有几个需求,可以将组件拖到绘图面板中,并且组件间可以通过线进行关联,在属性面板可以配置组件的属性,这里的组件可能是html的组件,也可能是一个功能,为什么需要这么一个东西呢?如果有这东西,很多想法就可以实现,比如

  • 工作流
  • 服务编排

但一直找不到满意的框架,很大原因就是这些框架颜值太低,直到遇到NodeRed,NodeRed是物联网开发工具,提供可视化界面通过配置就能实现物联网程序的开发,让我感兴趣的是NodeRed可视化界面,颜值高,操作便利,简洁不花哨

因为NodeRed是开源的,也花了一段时间去研究他的代码,想把可视化工具抽离出为我所用,种种原因失败了,既然抽离不出来,能不能自己实现一个?之前从来没想过自己开发一个,但细想觉得并不难实现,可视化界面核心有两点

Read the rest of this entry

背景

某项目OIM资源历史记录时间显示时区不对,比北京时间少了8个小时

正常时间:

导致了跨时区用户无法登录,账户被锁,在修改了所有跟时区有关的环境信息后(包括操作系统时区,数据库时区,jvm时区,oim时区)依然无法解决。

Read the rest of this entry

背景

某客户有两套用户中心,门户需要实现以下需求,先在用户中心1进行认证,如果认证通过就结束,如果失败进行用户中心2进行认证。

实现

上一篇文章中,我们提到weblogic是可以配置多个Provider,也就是认证提供程序,并且有个控制参数(Control Flag)控制认证规则,通过调整Provider顺序可以控制认证顺序,这两个配合即可实现上面的需求。

创建Provider

这里我们参考上一篇文章创建了两个SQLAuthenticator,SQL1和SQL2,并将其调整至最前面,如图:

Read the rest of this entry

背景

企业应用中,最麻烦的应该就是认证,每个企业都有自己的认证体系,甚至企业内部每个系统有自己的认证方案,其中有基于标准的,有根据标准自定义的,也有完全自定义的,将这么多不同认证体系的系统集成到一个统一认证中心是非常具有挑战性的,所以我一直觉得单点登录的项目是最难做的,也正因为认证体系的多样性,weblogic提供了多种认证方案,看到下面这张图就知道weblogic为什么是最强企业应用中间件了,基本上你能想到的,想不到的认证方式weblogic都提供了解决方案。

Read the rest of this entry

http://oa.definesys.com:7003/definespace/ers/login.html为例

  • 根据oa.definesys.com确定所在服务器,如果是ohs或者nginx之类的代理服务器,需要根据配置找到真正服务器地址
  • 根据7003找到所在程序,可以通过以下命令找到应用程序pid
[root ~]# netstat -npl|grep 7003
tcp        0      0 172.17.65.1:7003        0.0.0.0:*               LISTEN      16496/java          
tcp        0      0 172.23.0.1:7003         0.0.0.0:*               LISTEN      16496/java          
tcp        0      0 172.16.81.92:7003       0.0.0.0:*               LISTEN      16496/java          
tcp        0      0 127.0.0.1:7003          0.0.0.0:*               LISTEN      16496/java          
tcp        0      0 172.22.0.1:7003         0.0.0.0:*               LISTEN      16496/java

Read the rest of this entry