SSO CAS - BONITA 7.x community

1
0
-1

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-bonit...

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

1 answer

1
0
-1

Hi erwan.bodere,

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

Thanks in advance,

Notifications