Forums / Developer / vBulletin and eZ Publish Single sign-on

vBulletin and eZ Publish Single sign-on

Author Message

Axel Wehner

Monday 12 October 2009 7:03:27 am

Hello,

i'm planning a connection of the user management between vBulletin (a community system) and eZ Publish.

The Goal is that a registered User of vBulletin get access to a restricted section in eZ Publish. The User shouldn't have to register or login in eZ Publish directly because the vBulletin user management is absolutely a great thing. I could create a synchronisation script which keep the database user-tables between both Systems updated; but how to handle the login in both systems?

I read in this forum that this (or something similar) has been often done before, but I didn't find any examples for doing it (LoginHandler or SSOHandler?). Could someone give me a hint what's the most efficient approach to do that?

A small illustration of my first thoughts: http://ecantus.de/misc/sso.gif

Thank you!

Best regards,
Axel

Piotrek Karaƛ

Monday 12 October 2009 8:43:53 am

Hello Ahel,

We've recently done a similar thing, but for another piece of software - IP.Board - and in reverse direction - eZ Publish being the king of the installation, serving as an single sign on solution. For several reasons that architecture fit our needs better. In any way, we created an eZ Publish login handler and couple of hacks for registration/activation routines, and we call IP.Board API directly from eZ Publish (which by the way seems heavens better than vBulletin's, but that's just our opinion). This way the API does everything as it should be done (basically setting up the session for the forum software without having to access it or login into it right away), and also it has been planned for external integrations so there's this workflow which causes to create a fully functional forum user the moment he first accesses the forum application.

The rationale behind the chosen solution was:
- Only needed one siteaccess to one forum arrangements, no multiple languages (in our solution they have to share the domain, with forum being a subdirectory of eZ installation),
- We aimed at forums working around content rather than content being added to the forum,
- We have much more expertise with eZ Publish and therefore have more control over the integration than we would have trying to have forum application as a central part.

Of course a more flexible approach could be to for example use openID, which is by default supported in IP.Board and there are some extensions for that for eZ Publish, if you go though the projects section.

Hope this helps to boost a discussion around this interesting topic.

Cheers,
Piotrek

--
Company: mediaSELF Sp. z o.o., http://www.mediaself.pl
eZ references: http://ez.no/partners/worldwide_partners/mediaself
eZ certified developer: http://ez.no/certification/verify/272585
eZ blog: http://ez.ryba.eu

eZ debug

Timing: Jan 18 2025 05:01:23
Script start
Timing: Jan 18 2025 05:01:23
Module start 'content'
Timing: Jan 18 2025 05:01:24
Module end 'content'
Timing: Jan 18 2025 05:01:24
Script end

Main resources:

Total runtime0.8976 sec
Peak memory usage4,096.0000 KB
Database Queries191

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0080 588.9453180.8281
Module start 'content' 0.00800.7656 769.7734539.9453
Module end 'content' 0.77360.1239 1,309.7188332.7578
Script end 0.8975  1,642.4766 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00400.4487210.0002
Check MTime0.00150.1627210.0001
Mysql Total
Database connection0.00100.115910.0010
Mysqli_queries0.828892.33231910.0043
Looping result0.00190.21521890.0000
Template Total0.863796.220.4319
Template load0.00220.250020.0011
Template processing0.861595.977120.4307
Template load and register function0.00020.020710.0002
states
state_id_array0.00130.143010.0013
state_identifier_array0.00140.150720.0007
Override
Cache load0.00190.2085240.0001
Sytem overhead
Fetch class attribute can translate value0.00150.166030.0005
Fetch class attribute name0.00130.141640.0003
XML
Image XML parsing0.00210.235530.0007
class_abstraction
Instantiating content class attribute0.00000.000740.0000
General
dbfile0.00470.5246340.0001
String conversion0.00000.000830.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1node/view/full.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
2content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
2content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
5content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
3content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 14
 Number of unique templates used: 6

Time used to render debug report: 0.0002 secs