Does anyone here have any familiarity with integrating Jasper Reports into a Hobo application? If so, can you share any tips or tricks?
I have a Hobo application that runs under JRuby. I am adding reporting using Jasper Reports, which is Java-based. The client wants a single sign on (SSO) solution so that users don't have to sign in separately to the Hobo application and the Jasper Reports server. Users will access the application over both an intranet and the internet. I plan to use database authentication (user name and hashed password) for all users. I have looked at several SSO applications, focusing on ones that are Ruby or Java-based:
- CASino - http://casino.rbcas.com/ - Ruby-based CAS server - one of the gems had native extensions, which JRuby did not like. I therefore decided against it.
- Shibboleth - http://shibboleth.net/ - Java-based SAML server - looks promising, but documentation is confusing, and the developers' focus is on running it within the Jetty servlet container, which I am not familiar with. I experimented with getting a Shibboleth identity provider instance working, but ran into issues with the documentation, and decided to drop it for now.
- Apereo CAS - https://apereo.github.io/cas/5.0.x/index.html - Java-based CAS server. I understand that this is the original CAS server from the people that defined CAS. It is developed and tested against the Tomcat servlet container, which is also what Jasper Reports is developed and tested against. I was able to get the server up and running without too much trouble, and am now looking at the database authentication documentation.
I am happiest with the Apereo CAS server so far. CASino was a non-starter due to the native extension issue, and Shibboleth looks to be a very complex solution. Apereo CAS seems slightly simpler. Apereo CAS and Jasper Reports can both run inside any servlet container, but the fact that they are both developed using Tomcat, and most of the forum users also use Tomcat, makes me think that going with Apereo CAS and Tomcat will be slightly less painful than using something else that is developed against a different servlet container.
I am now working on configuring CAS for authentication using a database with a "users" table. Ideally, I would like to use the Hobo application's users table as a master table, and direct the CAS server to authenticate against it, but I don't know if that makes any sense. I would also like to be able to make use of the user invitation setup from Hobo, and then have people use single sign on after they have accepted the invitation from Hobo.
If anyone here has dealt with any of this and can provide some insight, I would greatly appreciate it.
Thanks in advance.