Modificando as telas do CAS

outubro 5, 2009

O CAS utiliza o conceito de temas para definição do layout de suas telas. Por padrão é aplicado um tema chamado default.
Para modificar o CAS com os seus temas, é necessário o seguinte:

Modificar o arquivo cas.properties, alterando as propriedades cas.themeResolver.defaultThemeName com o nome do seu tema e cas.viewResolver.basename com o nome do arquivo properties que conterá os mapeamentos das views. Por exemplo:


#cas.themeResolver.defaultThemeName=default
#cas.viewResolver.basename=default_views

cas.themeResolver.defaultThemeName=obaoba
cas.viewResolver.basename=obaoba_views

Neste caso, o cas utilizará os mapeamentos de view do arquivo obaoba_views.properties. Portanto, é necessário criar tal arquivo. Basta criar uma cópia do default_views.properties que vem com o CAS e alterar a localização dos jps para um diretório que contenha as sua páginas personalizadas. Neste caso também vale a dica de copiar o diretório existente WEB-INF/view/jsp/default, renomeá-lo e efetuar as suas personalizações. Note que as páginas existentes nesse diretório devem ser referenciadas no arquivo obaoba_views.properties.

Seguindo essas dicas, você estará modificando o tema padrão da sua instalação do CAS. Ainda é possível associar temas aos serviços que são protegidos pelo CAS através do cadastro de serviços, dessa maneira cada aplicação protegida pode ter o seu layout específico na tela de login, tudo isso dentro de uma única instalação do CAS.


Personalizando o CAS

setembro 23, 2009

O CAS (Central Authentication Service) é um projeto open-source com o objetivo de prover a funcionalidade de autenticação única (single sign-on) para aplicações web.

Neste post, explicarei como criar uma versão customizada do CAS para que suas aplicações façam uso do single sing-on da sua maneira.

Seguindo a recomendação do wiki do CAS, uma das maneiras de customizá-lo é criar um projeto maven de uma aplicação web, e adicionar como dependência a aplicação que vem no pacote do CAS.

Digamos que a empresa “Oba oba” queira autenticar suas aplicações utilizando o CAS:

1. Criar diretório para o projeto

mkdir cas-obaoba
cd cas-obaoba
mkdir -p src/main/webapp
gedit pom.xml

2. Criar o pom.xml descrevendo o projeto maven

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>br.com.obaoba.cas</groupId>
    <artifactId>cas-obaoba</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>cas-obaoba - Aplicação de autenticação</name>
    <description>Aplicação JA-SIG CAS customizada para a Oba oba.</description>

    <dependencies>

        <!-- aplicação web do CAS que será personalizada-->
        <dependency>
            <groupId>org.jasig.cas</groupId>
            <artifactId>cas-server-webapp</artifactId>
            <version>3.3.3</version>
            <type>war</type>
        </dependency>

        <dependency>
            <groupId>org.jasig.cas</groupId>
            <artifactId>cas-server-core</artifactId>
            <version>3.3.3</version>
        </dependency>

      </dependencies>
    <build>
        <finalName>cas-obaoba</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>RELEASE</version>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
			<plugin>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>maven-jetty-plugin</artifactId>
				<configuration>
					<contextPath>cas-obaoba</contextPath>
					<scanIntervalSeconds>5</scanIntervalSeconds>
					<connectors>
						<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
							<port>8080</port>
							<maxIdleTime>60000</maxIdleTime>
							<confidentialPort>8443</confidentialPort>
						</connector>
					</connectors>
				</configuration>
			</plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>jasig-repository</id>
            <name>JA-SIG Maven2 Repository</name>
            <url>http://developer.ja-sig.org/maven2</url>
        </repository>
    </repositories>
</project>

3. Empacotar o projeto

mvn package

4. Copiar o conteúdo da aplicação web (xmls, jsps, css, javascripts, etc) que será personalizado.

cp -r target/cas-obaoba/* src/main/webapp/

5. Iniciar o servidor de desenvolvimento para confirmar que tudo deu certo.

mvn jetty:run

6. Abra http://localhost:8080/cas-obaoba no browser e verifique se a aplicação foi iniciada corretamente.

Imagem do browser exibindo a aplicação de login do CAS

Imagem do browser exibindo a aplicação de login do CAS

Estes foram os passos básicos para iniciar um projeto de personalização do CAS. A partir deste projeto, é possível alterar o conteúdo que está em src/main/webapp para incorporar o layout da sua empresa, além de modificar as configurações do CAS no arquivo src/main/webapp/WEB-INF/deployerConfigContext.xml para utilizar AuthenticationHandlers específicos da sua instalação, bem como um TicketRegistry real de alta disponibilidade. Assuntos que possivelmente serão tratados em outros posts.


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.