WLS 10.3:在认证失败后显示不友好的错误信息给用户_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3722 | 回复: 0   主题: WLS 10.3:在认证失败后显示不友好的错误信息给用户        下一篇 
刘习托
注册用户
等级:中士
经验:208
发帖:66
精华:0
注册:2011-11-23
状态:离线
发送短消息息给刘习托 加好友    发送短消息息给刘习托 发消息
发表于: IP:您无权察看 2011-11-25 12:23:51 | [全部帖] [楼主帖] 楼主

WLS 10.3:在认证失败后显示不友好的错误信息给用户

应用范围:

Oracle Weblogic 服务器 - Version: 10.3 或之后发布的版本

本文档的信息可以应用到任何平台上

目的

当一个到期的应用程序被双向的SSL访问时,WLS证书验证器将拒绝用户访问该应用程序,但是一个403 FORBIDDEN错误被抛出到客户端浏览器,这个被用户浏览器截获的错误消息会跳转到应用程序的一个自定义错误页面,怎样才能重定向以至于不显示关于403 Forbidden错误呢?

解决方法

解决方法显然是呼叫WLS CertPath 校验器,校验器是来自一个自定义Asserter身份,所以它将使用下面的示例代码返回自定义的错误信息:

java.security.cert.X509Certificate[] certChain = null;
try {
      if (token instanceof java.security.cert.X509Certificate[]) {
            certChain = (java.security.cert.X509Certificate[]) token;
            serialNumber = certChain[0].getSerialNumber();
      }
      else if (token instanceof sun.security.x509.X509CertImpl[]) {
            certChain = (sun.security.x509.X509CertImpl[]) token;
            serialNumber = certChain[0].getSerialNumber();
      } else {
      throw new IdentityAssertionException("无效的标记类型 "

+ formAuthUserID);
}
CertPath certPath;
java.security.cert.CertificateFactory cf1 = java.security.cert.CertificateFactory
.getInstance("X.509");
ArrayList certList = new ArrayList(certChain.length);
for (int i = 0; i < certChain.length; i++)
certList.add(certChain[i]);
try {
      certPath = cf1.generateCertPath(certList);
      System.out.println("生成Cerpath路径...");
} catch (CertificateException ex) {
      certPath = cf1.generateCertPath(certList);
}
CertPathValidator validator = CertPathValidator
.getInstance("WLSCertPathValidator");
X509Certificate x509TrustedCAs[] = null;
CertPathValidatorParameters params = new CertPathValidatorParameters(
WEBLOGIC_REALM, x509TrustedCAs, context);
CertPathValidatorResult certPathValidatorResult = validator
.validate(certPath, params);


错误

HTTP-403




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论