Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Web CMS (TeamSite)
CF/Teamsite 6.1 Integration
frogman
Hi,
We are using Teamsite 6.1 SP1 on Windows 2003 Server and a seperate CF server box.
Is there any way to virtualize Cold Fusion Content using the remote CF server (via iwproxy configuration) and still display the Smart Context Editor?
Find more posts tagged with
Comments
frogman
To add to my woes, I have Cold Fusion and Teamsite working fine on my development environment, using iwproxy_preconnect_remap. (No SCE).
I have configured the workplace environment in the same way but now I keep getting 401 Authorization errors! I created a user called tsVirtualization and put that user into the Teamsite Preview Group. The Virtual directory on the CF server uses this account to attach to the share.
Any ideas would be greatly appreciated - I have a huge deadline Thursday.
plaird
The solution to this that consultants have been using for years has come to be known as "double proxy". Unfortunately, it's a bit complicated and widely misunderstood. I'll try to shed some light on what "double proxy" is and why it's used.
iwproxy makes the determination of whether or not to inject the toolbar based on a number of criteria. One of these criteria is that iwproxy is able to associate the request with a particular vpath so that it can get the file information in TeamSite. When iwproxy is configured to go to an external source, using preconnnect_remap, it doesn't know whether the content comes from within TeamSite or from some other source, and so the toolbar is not injected. The way around this is to configure iwproxy to proxy first to itself, and then in a second pass to the app server.
There are any number of ways to do this, but the key is that on the first proxy pass the URL should look like
http://teamsiteserver/iw-mount/vpath
(i.e. the path portion must start with /iw-mount and it must be to the local server -- this will allow iwproxy to find the vpath for toolbar injection). Then you must insert some flag into the URL that can be detected on the second pass, or else iwproxy will proxy to itself recursively in a loop (until it reaches an internal count to prevent infinite loops and drops the request or runs out of memory or some other such bad thing). Then on the second pass, you detect this flag and proxy out to the appserver.
Many people use the query string in the URL for this flag. I used to do it that way myself, but then you have to worry about existing query strings and getting your ?s and &s right. Instead I prefer adding a flag in the path itself after the iw-mount. Here's an example which maps /default/main/appbranch/WORKAREA/apparea to the app server instance on appserver:8080/appname/
[iwproxy_preconnect_remap]
# Double Proxy
# 2nd pass -- catch the /iw-mount/double_proxy path
# (note that the rule for the 2nd pass MUST come first)
_regex=/iw-mount/double_proxy/(.*)=
http://appserver:8080/appname/$1
# 1st pass
_regex=/iw-mount/default/main/appbranch/WORKAREA/apparea/(.*)$=
http://teamsiteserver:1080/iw-mount/double_proxy/$1
Also note that we're actively working on ways to make this a lot less convoluted in the future. :-)
----
Peter Laird
Interwoven Client Engineering Team -- iwproxy/iwwebd
frogman
Hi Plaird,
Thanks for the advice. I am having a problem still. The app server page does try to load but I get a 404 error and a Java exception on the SCE toolbar.
Here's my preconnect_remap config:
[iwproxy_preconnect_remap]
#original settings (work but no SCE)
#_regex=^/iw-mount/default/(.*)/WORKAREA/(.*\.cfm)$=
http://192.168.0.10/teamsite/$1/WORKAREA/$2
#_regex=^/iw-mount/default/(.*)/STAGING/(.*\.cfm)$=
http://192.168.0.10/teamsite/$1/STAGING/$2
# Double Proxy
# 2nd pass -- catch the /iw-mount/double_proxy path
#--------------------------------------------------
# (note that the rule for the 2nd pass MUST come first)
# eg
#_regex=/iw-mount/double_proxy/(.*)=
http://appserver:8080/appname/$1
#--------------------------------------------------
_regex=/iw-mount/double_proxy/(.*)=
http://192.168.0.10/teamsite/$1
# 1st pass
#--------------------------------------------------
# eg
#_regex=/iw-mount/default/main/appbranch/WORKAREA/apparea/(.*)$=
http://teamsiteserver:1080/iw-mount/double_proxy/$1
_regex=/iw-mount/default/main/DevTest/WORKAREA/MWHTEST/HTDocs/(.*\.cfm)$=
http://localhost:1080/iw-mount/double_proxy/$1
#--------------------------------------------------
And here's the errors from the iw_webd\logs\error.log file:
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/interwoven/launchpad100/strings.class
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/interwoven/launchpad100/strings_en.class
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/interwoven/launchpad100/strings_en_AU.class
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/interwoven/launchpad100/strings_en_AU.properties
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/interwoven/sharedutils100/strings.class
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/interwoven/sharedutils100/strings_en.class
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/interwoven/sharedutils100/strings_en_AU.class
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/ms/security/PolicyEngine.class
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/ms/security/PolicyEngine.class
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/interwoven/clientutils100/strings.class
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/interwoven/clientutils100/strings_en.class
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/interwoven/clientutils100/strings_en.properties
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/interwoven/clientutils100/strings_en_AU.class
[Wed Apr 27 09:56:53 2005] [error] [client 127.0.0.1] File does not exist: c:/iw/teamsite/httpd/iw/launchpad100/com/interwoven/clientutils100/strings_en_AU.properties
I get the theory, I'm just having a few problems implementing. Is there anything glaringly obvious that I've missed?
Thanks
plaird
You can refer to
https://support.interwoven.com/kb/kb_show_article2.asp?ArticleID=49954
for tips on debugging double proxy.
In an appserver integration, cold fusion or otherwise, these are the steps I follow:
1) get the app server working on its own (in this case this would mean you could browse to
http://192.168.0.10/teamsite/index.cfm
(or whatever page is appropriate) and have the page you expect to see. There's no point going into the proxy config until you get this working.
2) debug the double proxy passes, one at a time, with iwproxy -d, using the techniques in the kb article above
3) kill the iwproxy -d and run the proxy normally. Test from the UI. If steps 1 and 2 both work but 3 fails, consulting the appserver log is generally useful (sometimes the appserver wants a cookie or other header it's not getting or there's some security policy blocking the proxied access).
----
Peter Laird
Interwoven Client Engineering Team -- iwproxy/iwwebd
frogman
Hi Plaird,
I've got it all working now. Files are being processed by the CF server and displaying OK. However (and there's always a however!), the SCE is displaying an error:
"An error occurred executing command com.interwoven.ui.vpreview.DelegateHandlerCommand"
I followed the debugging steps outlined in the link you provided. When I run iwproxy -d I get the following in amongst the debug statements:
[Access control not enabled in iwproxy_access_control_enabled for url
http://192.168.0.10/teamsite/main/DevTest/WORKAREA/MWHTEST/HTDocs/cftest.cfm]
[Suppressing injection because we can't figure out the vpath]
Not entirely sure how to proceed!
Prashanth Shetty
Hi Frogman,
I ran in to same issue while trying to virtualize ColdFusion in TeamSite with Visual Preview Toolbar (SCE). Then I implemented proxy settings explained in this KB article
https://support.interwoven.com/kb/kb_show_article2.asp?ArticleID=1341
which is basically a double proxy setting using query string.
And it works without SCE errors.
Prashanth
frogman
Hi Prashanth
Many thanks for this. It all works now - We have cross domain remote CF applications mapping from Teamsite and the SCE is also working fine.