<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    數(shù)據(jù)加載中……

    2007年10月21日

    轉(zhuǎn):yale cas 配置談

    原文地址

    TOMCAT :tomcat-5.5.15版
    JDK:1.5.06
    環(huán)境變量要設好.

    1.        啟用TOMCAT的SSL
    把.keystore文件復制到TOMCAT的CONF目錄下面。
    在TOMCAT的主目錄的CONF目錄下面,修改server.xml文件,加上以下代碼
    <Connector port="8443" maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" disableUploadTimeout="true"
                   acceptCount="100" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS"
                   keystoreFile="conf/.keystore"
                   keystorePass="changeit"
                   />
    其中的keystoreFile是證書庫文件,keystorePass是訪問此證書庫文件的密碼。
    注:keystore文件可以用以下方法生成。
    Keytool –genkey –alias hostname –keyalg RSA(在接下來的第一項是名稱,記住最好是和hostname同一名稱)執(zhí)行此操作會在用戶的當前目錄(user.home)下產(chǎn)生一個名為.keystore的文件。如果已經(jīng)有了,將自動把新產(chǎn)生的KEY放進文件里面(此次的hostname是運行CAS服務器的名字.不要搞錯,否則會在以后驗證出錯的.如果你是在本地測試,則用localhost就OK了)
    2.        導入證書文件到各個應用的JRE的JVM里面
    首先產(chǎn)生一個證書文件,用以下方法:
    Keytool –export –alias hostname –file filename.cer
    這樣就在用戶當前產(chǎn)生了一個名為filename.cer的文件
    接下來就把此文件導入到各應用的的JVM里面
    Keytool –import –alias hostname –file filename –keystore {java_home}\jre\lib\security\cacerts
    注:如果你的JAVA_HOME里面有空格,請用引號括住。
    3.        把cas.war包復制到TOMCAT的WEBAPPS下面,然后用http://localhost:8080/cas/login就可以訪問登陸了

    改寫驗證方法。CAS的默認方驗證方法是用戶名和密碼相同,如果想改為自己的驗證方式,如何做呢?你只需復制以下代碼,然后在適當?shù)牡胤讲迦肽愕尿炞C代碼就OK了。
    package org.jasig.cas.authentication.handler.support;

    import org.jasig.cas.authentication.principal.UsernamePasswordCredentials;
    import org.springframework.util.StringUtils;

    public final class classname extends
        AbstractUsernamePasswordAuthenticationHandler {

        public boolean authenticateUsernamePasswordInternal(
            final UsernamePasswordCredentials credentials) {
            final String username = credentials.getUsername();
            final String password = credentials.getPassword();

            if (在此插入你的驗證代碼) {
                getLog().debug(
                    "User [" + username + "] was successfully authenticated.");
                return true;
            }

            getLog().debug("User [" + username + "] failed authentication");

            return false;
        }

        protected void afterPropertiesSetInternal() throws Exception {
            super.afterPropertiesSetInternal();
            getLog()
                .warn(
                    this.getClass().getName()
                        + " is only to be used in a testing environment.  NEVER enable this in a production environment.");
        }
    }

    然后,修改deployerConfigContext.xml(在CAS的WEB-INF目錄下面)
    找到
    <bean                        class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
    把class改為你自己寫的驗證的類就OK了。
    到此,服務器端的配置就完成了。
    接下來是各個應用的配置:

    4.(以JAVA的配置為例子)把casclient.jar包復制到應用的lib目錄下面,如果沒有就創(chuàng)建它。然后再在應用的部署描述文件里面(web.xml)加上filter。如下:
    <filter>
        <filter-name>CAS Filter</filter-name>
        <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
        <init-param>
          <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
          <param-value>https://casServerhost:8443/cas/login</param-value>
        </init-param>
        <init-param>
          <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
          <param-value>https:// casServerhost:8443/cas/proxyValidate</param-value>
        </init-param>
        <init-param>
          <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
          <param-value>localhost:8080</param-value>
        </init-param>
      </filter>
    <filter-mapping>
      <filter-name>CAS Filter</filter-name>
      <url-pattern>/servlet/*</url-pattern>
    </filter-mapping>

    Localhost是指各個應用的服務器的名字
    casServerHost是指cas服務器的名字
    其中的filter-mapping就是配置哪些資源是需要通過CAS驗證的。可以配置多個。

    4.        配置語言包
    在cas里面的WEB-INF\classes下面添加不同的語言包,然后再在\WEB-INF\view\jsp\default\ui\includes的top.jsp文件頂部加入<%@ page contentType="text/html; charset=gbk" language="java" %>便可以了。

    一些錯誤信息:
    1.        keytool 認證未輸入別名 <mykey> 已經(jīng)存在
    這是因為你已經(jīng)導入了一信任證書。在進行keytool –import的時候,如果沒有指定別名,則系統(tǒng)默任導入的證書的名字為mykey,所以,可以先刪除此證書keytool –delete –alias mykey –keystore {java_home}\jre\lib\security\cacerts
    然后再從新導入,或者指定別名導入keytool –import –alias name –keystore {java_home}\jre\lib\security\cacerts

    2.        java.io.IOException: Keystore was tampered with, or password was incorrect
    這個很可能你的keystore文件已經(jīng)被修改了,密碼已經(jīng)更改,直接刪除這個文件,再從新生成就可以了
    3.        javax.servlet.ServletException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    這是因為你沒有在應用端導入證書。在應用端執(zhí)行keytool –import –alias name –file filename.cer便可以。其中的name.cer是在前面的用keytool –export導出的cer文件

    posted @ 2007-10-21 20:07 老五 閱讀(1876) | 評論 (0)編輯 收藏

    2007年10月8日

    轉(zhuǎn):機器上有多個Tomcat的問題

    如果你的機器有多個Tomcat,當你執(zhí)行一個Tomcat的startup命令時,它執(zhí)行的是你希望的那個嗎?

          我機器有多個Tomcat的目錄,因為它不用安裝,所以,我就進入到一個Tomcat的bin目錄,執(zhí)行startup.bat,結(jié)果發(fā)現(xiàn)不對,它執(zhí)行的是另一個目錄下的Tomcat。

          后來想明白了,是CATALINA_HOME的問題,不管你執(zhí)行的是那個目錄下的啟動命令,而真正執(zhí)行的是CATALINA_HOME配置的那個Tomcat的命令,或者說startup會尋找CATALINA_HOME配置的目錄,啟動那個Tomcat。

          切記,否則,會被耍得很郁悶......

          另外,catalina*.bat文件也很有用,你可以自己編輯這個文件,為它指定JAVA_HOME,這樣你就可以不用事先安裝JDK或者JRE,自己的程序中打包一個JDK,然后,指定JAVA_HOME為自己的這個JDK的相對路徑,然后用安裝打包工具,如NSIS,Wise等打包,然后,安裝會把這些東西都復制到指定的路徑下,你的程序直接執(zhí)行startup命令就可以了,這樣即使用戶不懂技術(shù),安裝步驟也不復雜。

          還有,好像是Tomcat4.1.29開始,Tomcat對Get的處理和Post不再一樣,就帶來了Tomcat的URIEncoding的問題,具體解決辦法是配置URIEncoding="字符集",我忘了從那里看到了,寫在這里,如果哪位兄弟知道確切的出處,請告訴我,謝謝!

    原文地址

    posted @ 2007-10-08 21:32 老五 閱讀(348) | 評論 (0)編輯 收藏

    2007年9月27日

    Eclipse格式化代碼時不換行

        每次用Eclipse自帶的Ctrl+shift+f格式化代碼時,如果原來的一行代碼大于80列,Eclipse就會自動換為多行,這點個人感覺不是很舒服,簡單試了一下,通過以下方式可以修改:
        1、preferences->Java->Code Style->Code Formatter->Show... ,打開之后,選擇“Line Wrapping”選項卡,在“Maximun line width”指定大于多少列時換行。
        2、還是在“Line Wrapping”選項卡中,能過選擇"Line Wrapping policy"可以指定構(gòu)造函數(shù)、方法體等的換行情況。
        不過,SUN推薦的編碼風格默認是80列換行。

    posted @ 2007-09-27 22:34 老五 閱讀(3022) | 評論 (0)編輯 收藏
    僅列出標題  
    主站蜘蛛池模板: 日韩人妻一区二区三区免费| 亚洲狠狠婷婷综合久久蜜芽| 久久国产精品免费一区| 国产免费拔擦拔擦8x| 亚洲成AV人片高潮喷水| 国产精品免费视频网站| 麻豆va在线精品免费播放| 四虎永久精品免费观看| 午夜成人无码福利免费视频| 亚洲国产成人a精品不卡在线| 大片免费观看92在线视频线视频| 久久精品国产亚洲Aⅴ香蕉| 中文在线观看国语高清免费| 亚洲国产精品嫩草影院在线观看| 日韩在线永久免费播放| 亚洲国产成人精品久久 | 亚洲福利视频一区| 免费无码又爽又刺激高潮视频| 亚洲精品日韩专区silk| 成年午夜视频免费观看视频 | 亚洲国产第一页www| 亚洲网站免费观看| 精品国产_亚洲人成在线| 久久久久亚洲AV成人网人人网站| 久久久高清日本道免费观看| 久久亚洲精品成人av无码网站| 免费a级毛片高清视频不卡| 亚洲JLZZJLZZ少妇| 亚洲精品国产精品乱码在线观看| 一区二区在线免费观看| 亚洲日韩国产欧美一区二区三区| 亚洲人成无码网WWW| 久久伊人免费视频| 亚洲美国产亚洲AV| 久久亚洲高清观看| 成人免费一区二区三区在线观看| 日韩免费高清一级毛片| 久久精品国产亚洲av麻豆小说 | 夜夜爽妓女8888视频免费观看| 亚洲一区二区在线免费观看| 四虎影视在线永久免费看黄|