...
Info | ||
---|---|---|
| ||
La funcionalidad descrita en este documento está disponible a partir de la versión 7.1.04 |
Introducción
Si bien una forma de integrarse con el Single Sign On de O3 es la adaptación de la aplicación existente para que utilice el CAS de O3, en muchas oportunidades esto es demasiado complejo y se requiere una alternativa más simple.
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<datasource jndi-name="java:jboss/datasources/TicketDS"
pool-name="TicketDS" enabled="true" jta="true" use-java-context="true"
use-ccm="true">
<connection-url>
jdbc:mysql://localhost:5858/sso_tickets
</connection-url>
<driver>
mysql
</driver>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
</datasource>
</datasources>
|
Ejemplo de DataSource para una base Postgres (<o3bi>/jboss/standalone/deployments/Ticket-ds.xml).
Code Block language xml <?xml version="1.0" encoding="UTF-8"?> <datasources> <datasource jndi-name="java:jboss/datasources/TicketDS" pool-name="TicketDS" enabled="true" jta="true" use-java-context="true" use-ccm="true"> <connection-url> jdbc:postgresql://localhost:5432/sso_tickets </connection-url> <driver> postgres </driver> <security> <user-name>postgres</user-name> <password>postgres</password> </security> </datasource> </datasources>
Poner el driver en jboss. Para esto leer el wiki: Cómo configurar RBAC de O3BI con Diferentes Bases de Datos que explica como poner un driver en jboss7
...
Code Block |
---|
CREATE TABLE SSO_TICKETS ( Ticket character varying(100) NOT NULL, Ticket_TS timestamp NOT NULL, UserName character varying(50) NOT NULL, CONSTRAINT pk_sso_tickets PRIMARY KEY (Ticket) ) |
Ejemplo de insert para el usuario "admin"
Code Block INSERT INTO `SSO_TICKETS` (`Ticket`, `Ticket_TS`, `UserName`) VALUES ('12345678', '2016-08-01 03:00:00', 'admin');
Nota: acualizar la fecha para hacer el insert
Configuración de SSO en O3Web
...
Para esto hay que agregar los siguientes init-param en 2 filtros ("CASAuthenticationFilter" y "CAS Validation Filter") de CAS del archivo en el archivo "<o3bi>/jboss/standalone/deployments/o3-server.ear/o3web.war/o3web.war/WEB-INF/web.xml" los siguientes init-param en:
- 2 filtros ("CASAuthenticationFilter" y "CAS Validation Filter")
- un Servlet que se llama "o3WebLogoutServlet"
Code Block | ||||
---|---|---|---|---|
| ||||
<init-param> <param-name>ticket.validator</param-name> <param-value>com.ideasoft.cs.ejb.ticket.DbTicketValidator</param-value> </init-param> <init-param> <param-name>dbticket.datasource</param-name> <param-value>java:jboss/datasources/TicketDS</param-value> </init-param> |
...
Configuración de SSO para EPortal
Descomentar las siguientes propiedades del archivo <o3bi>/liferay/portal-ext.properties:
Code Block o3.autologin.validator=com.ideasoft.cs.ejb.ticket.DbTicketValidator dbticket.datasource=java:/comp/env/jdbc/TicketDB
...
Se puede especificar también la propiedad dbticket.expiration de la misma manera que para la configuración de O3Web.
Agregar el "O3AutoLogin" en la property "auto.login.hooks".
Debe queda así: auto.login.hooks=com.liferay.portal.security.auth.CASAutoLogin,com.liferay.portal.security.auth.FacebookAutoLogin,com.liferay.portal.security.auth.NtlmAutoLogin,com.liferay.portal.security.auth.OpenIdAutoLogin,com.liferay.portal.security.auth.OpenSSOAutoLogin,com.liferay.portal.security.auth.RememberMeAutoLogin,com.liferay.portal.security.auth.SiteMinderAutoLogin,biz.ideasoft.liferay.portal.login.O3AutoLoginAgregar la configuración de la Base de datos en liferay:
Agregar el "Resource" en el archivo <o3bi>liferay/tomcat/conf/context.xml
Ejemplo Mysql:Code Block <Resource name="jdbc/TicketDB" auth="Container" type="javax.sql.DataSource" username="root" password="root" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:5858/sso_tickets" validationQuery="select 1" maxActive="50" maxIdle=
...
"10"/>
Ejemplo PostgreSQL:
Code Block <Resource name="jdbc/TicketDB" auth="Container" type="javax.sql.DataSource" username="postgres" password="postgres" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/sso_tickets" validationQuery="select 1" maxActive="50" maxIdle="
...
10"/>