SSO CAS - BONITA 7.x community

Bonjour,

Nous souhaitons déléguer l’authentification à Bonita (version 7.x commuity) au travers de CAS.

Nous avons suivi ce tutorial pour la version 6.x : http://www.evoketechnologies.com/blog/integrate-sso-authentication-bonita-bpm/

Voici ce que nous avons fait :

1 - Création d’un filtre CustomSSOIntegrationFilter

trustedUser = httpRequest.getRemoteUser(); LoginAPI loginAPI = TenantAPIAccessor.getLoginAPI(); apiSession = loginAPI.login(trustedUser, "defaultpassword"); httpSession.setAttribute("apiSession", apiSession); chain.doFilter(httpRequest, servletResponse);

2 - Modification du fichier web.xml
<listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> </listener> <!-- CAS standard filters --> <filter> <filter-name>CAS Single Sign Out Filter</filter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> </filter> <filter> <filter-name>CAS Authentication Filter</filter-name> <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> <init-param> <param-name>casServerLoginUrl</param-name> <param-value>https://cas.domain.fr/</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://sub.domain.fr</param-value> </init-param> </filter> <filter> <filter-name>CAS Validation Filter</filter-name> <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class> <init-param> <param-name>casServerUrlPrefix</param-name> <param-value>https://cas.domain.fr/</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://sub.domain.fr</param-value> </init-param> <!--avoid ticket in returned url--> <init-param> <param-name>redirectAfterValidation</param-name> <param-value>true</param-value> </init-param> </filter> <filter> <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class> </filter> <!--bonita custom CAS filter--> <filter> <filter-name>CustomSSOIntegrationFilter</filter-name> <filter-class>fr.ifremer.common.filter.CASFilter</filter-class> </filter> <!-- CAS filter mapping --> <filter-mapping> <filter-name>CAS Single Sign Out Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CAS Authentication Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CAS Validation Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CustomSSOIntegrationFilter</filter-name> <url-pattern>/portal/BonitaConsole.html</url-pattern> <url-pattern>/portal/homepage</url-pattern> </filter-mapping>

On est bien redirigé vers CAS et on arrive à créer la session Bonita mais on a obtient une erreur 500 pour un null pointer excepition sur RestAPIAuthorizationFilter.

En ajoutant la configuration suivante dans le web.xml, on n’a plus d’erreur mais une page blanche :

<filter-mapping> <filter-name>RestAPIAuthorizationFilter</filter-name> <url-pattern>/portal/BonitaConsole.html</url-pattern> <url-pattern>/portal/homepage</url-pattern> </filter-mapping>

Nous sommes certainement confronté à un problème de configuration des mappings.

Avez-vous une idée ?

Cordialement

Erwan

Hi erwan.bodere,

Did you resolve this? I’m having a similar problem

Thanks in advance,