程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 單點登錄CAS使用記(八):使用maven的overlay實現無侵入的改造CAS,mavenoverlay

單點登錄CAS使用記(八):使用maven的overlay實現無侵入的改造CAS,mavenoverlay

編輯:JAVA綜合教程

單點登錄CAS使用記(八):使用maven的overlay實現無侵入的改造CAS,mavenoverlay


前期在學習CAS部署的過程中,都是網上各種教程,各種方案不停的嘗試。

期間各種侵入改源碼,時間久了,改了哪個文件,改了哪段配置,增加了哪段代碼,都有可能混淆不清了。

而且最大的問題是,萬一換個人來維護或者哪天需要升級CAS版本,從何下手?

 

還好,maven的overlay的功能,可以幫助我解決這個問題。

什麼是maven的overlay?

 overlay可以把多個項目war合並成為一個項目,並且如果項目存在同名文件,那麼主項目中的文件將覆蓋掉其他項目的同名文件。

於是,我就可以完全不修改cas-server-webapp的原有代碼實現CAS了。

 

步驟一:新建my-cas-server

默認的CAS是以cas-server-webapp為主項目,用戶登錄認證入口、用戶登錄頁面、各種主配置文件都包含在此項目中。

現在,我把新建的my-cas-server作為我的主項目,而把cas-server-core項目作為從屬項目導入主項目中。

my-cas-server的pom.xml

        <dependency>
            <groupId>org.jasig.cas</groupId>
            <artifactId>cas-server-webapp</artifactId>
            <version>3.4.11</version>
            <type>war</type>
            <scope>runtime</scope>
        </dependency>

 

步驟二:設置overlays

配置overlay用於覆蓋從屬項目的同名文件,意思就是說,如果我主項目中存在與cas-server-webapp項目相同目錄並且相同名稱的文件,已主項目的為准,也就是覆蓋從屬項目的文件。

在my-cas-server的pom.xml中添加:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <overlays>
                        <overlay>
                            <groupId>org.jasig.cas</groupId>
                            <artifactId>cas-server-webapp</artifactId>
                        </overlay>
                    </overlays>
                </configuration>
            </plugin>
        </plugins>
    </build>

 

步驟三:拷貝同名文件

把之前修改過的cas-server-webapp的源碼以及配置文件,全都列舉出來,並且拷貝到my-cas-server的相同目錄下。

例如:之前我改過了這麼些代碼(部分代碼)

UsernamePasswordCredentials.java

AuthenticationViaFormAction.java

webapp/WEB-INF/

|--classes

  |---cas-theme-default.properties

  |---default_views.properties

  |---messages_zh_CN.properties

|--spring-configuration

  |----ticketRegistry.xml

cas-servlet.xml

deployerConfigContext.xml

login-webflow.xml

web.xml

同樣的,我把這些文件全部復制到新項目中,目錄與原項目保持一致。

 

步驟四:啟動my-cas-server測試效果

啟動後發現,與之前效果完全一致,可以正常訪問,也可以正常的進行認證。

 

擴展:

采用overlay方式後,不僅可以不用修改源碼進行CAS改造,而且你還會發現,編碼的自由度大大增加了,不用再受限於原有項目的種種約束。

例如,我想要美化一下登錄頁面,原有的太過簡單了。

我完全可以像平時開發一下,重新繪制一個登錄頁面,然後在配置文件中替換掉默認登錄頁面就可以了。

然後修改一下default_views.properties

### Login view (/login)
casLoginView.(class)=org.springframework.web.servlet.view.JstlView
casLoginView.url=/WEB-INF/view/jsp/default/ui/casLoginView.jsp

 

-->

### Login view (/login)
casLoginView.(class)=org.springframework.web.servlet.view.JstlView
casLoginView.url=/WEB-INF/jsp/login.jsp

 

重新啟動,運行。

 


單點登錄CAS使用記系列:

  • 單點登錄CAS使用記(一):前期准備以及為CAS-Server配置SSL協議

  • 單點登錄CAS使用記(二):部署CAS服務器以及客戶端

  • 單點登錄CAS使用記(三):實現自定義驗證用戶登錄

  • 單點登錄CAS使用記(四):為登錄頁面加上驗證碼

  • 單點登錄CAS使用記(五):cas-client不攔截靜態資源以及無需登錄的請求。

  • 單點登錄CAS使用記(六):單點登出、單點注銷

  • 單點登錄CAS使用記(七):關於服務器超時以及客戶端超時的分析

  • 單點登錄CAS使用記(八):使用maven的overlay實現無侵入的改造CAS

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved