David.Turing's blog

           

          CAS集成Weblogic的ServletAuthentication調用

          本來,使用j_security_check是最簡單的Build-in認證方式,但CAS有自己的登錄入口,即login servlet,如果用該servlet,必須自己動手完成JAAS的登錄。于是,開始擴展CAS的edu.yale.its.tp.cas.auth.provider,在該包中的provider都擴展自authHandler接口,而CAS是在web.xml中定義了最終使用哪一個authHandler。

          edu.yale.its.tp.cas.authHandler
          edu.yale.its.tp.cas.auth.provider.WeblogicHandler

          我自己寫了一個WeblogicHandler(edu.yale.its.tp.cas.auth.provider包中),專門讓CAS登錄到Weblogic Server,事實上,將來如果不用WLS,還可能使用Websphere,Jboss,AD之類。

          后來發現,雖然能loginContext拿到Subject,但該Subject的Principal不能被頁面的request.getPrincipal()所取得,醒悟自己在做JAAS Login,查看weblogic文檔,原來Weblogic提供了
          weblogic.servlet.security.ServletAuthentication
          用于在Servlet端調用JAAS接口進行登錄,通過該接口登錄后,就如同User使用了標準的登錄機制登入了Weblogic。
          于是,立即修改了login servlet測試一下,加入

          try {
          CallbackHandler handler = new SimpleCallbackHandler(
          request.getParameter("username"),
          request.getParameter("password"));
          Subject mySubject = weblogic.security.services.Authentication
          .login(handler);
          weblogic.servlet.security.ServletAuthentication.runAs(
          mySubject, request);
          System.out.println("mySubject[" +mySubject.toString()+"]"+
          "寫入Session");
          } catch (LoginException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          }

          然后,頁面果然就能拿到Pincipal了。

          posted on 2006-04-02 12:02 david.turing 閱讀(3051) 評論(1)  編輯  收藏 所屬分類: Security領域

          評論

          # re: CAS集成Weblogic的ServletAuthentication調用 2007-04-25 09:07 cas funs

          能不能將edu.yale.its.tp.cas.auth.provider.WeblogicHandler代碼展示一下,另外如果CAS同時支持登錄到weblogic和websphere應用中如何實現?  回復  更多評論   

          導航

          統計

          常用鏈接

          留言簿(110)

          我參與的團隊

          隨筆分類(126)

          隨筆檔案(155)

          文章分類(9)

          文章檔案(19)

          相冊

          搜索

          積分與排名

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 浏阳市| 呼和浩特市| 图片| 红安县| 寿宁县| 孝昌县| 专栏| 夏津县| 海南省| 巴里| 扶余县| 绥芬河市| 安乡县| 醴陵市| 遵义县| 红原县| 萨嘎县| 黔江区| 西充县| 上林县| 柞水县| 阳西县| 长葛市| 富阳市| 杭锦后旗| 长宁区| 和田县| 卫辉市| 舟山市| 吴忠市| 桓台县| 寻甸| 烟台市| 河东区| 彭泽县| 阳朔县| 曲阳县| 铁岭市| 博兴县| 祁阳县| 驻马店市|