最近一个项目使用了WebSeal作为其他系统的统一访问接口,在测试我们Domino应用过程中,发现了一些问题。这些问题对于除了Domino以外的web应用,应该都是存在的。

  1. 使用JavaScript重定向的问题。
    通过WebSeal访问web应用,服务器会在应用的URL路径前面加上一层目录,以区分不同的应用。如oa应用下的/login这个地址,如果通过WebSeal访问就会变成/oa/login。一般来说WebSeal 会将页面中的各种 URL 自动转换成相应的路径,但有一种情况除外:javascript 中 的URL。我们的解决方法是将相关的地址写到一个隐藏的 A 标签中,这样 WebSeal 就会对其做处理,然后在通过 js 将转换后的地址取出来即可。
  2. 页面元素Content-Type不对的问题。
    WebSeal会在 HTML 页中加入一段 js 代码,用来做它需要的一些处理。而它判断是否是 HTML 页的标准就是服务器返回的Content-Type。如果我们使用 Domino 的页面来存放 js 而没有更改其 Content-Type 的话,这个 js 也会被插入上面所说的代码,然后导致 js 错误。所以我们需要将各种资源的 Content-Type 设置正确,其实这不单是为了 WebSeal 而修改,还会有其他好处的。
  3. 中文URL和POST中文数据的问题。
    中文 URL 的话,应该尽量避免,编一下码就好了。POST中文数据后来确定是 WebSeal 的配置问题。