Alfresco Community 4.0 with Microsoft Office integration via https - https

Background
We're using Alfresco to replace SharePoint. The primary use is document sharing and management.
I've got a fresh install of Alfresco Community 4.0 using MySQL on Windows Server 2008 R2. The client is Windows 7 with Microsoft Office 2010 installed. Using Chrome and the latest IE to access Alfresco. Both browsers work mostly fine. The client has the Web Folder update (KB907306) installed as well as registry set to allow basic authentication both for SSL and non-SSL shares just for testing purposes. The real scenario needs to have only SSL.
The issue
Out of the box (well, after client updates) Microsoft Office integration works only without HTTPS. We require that it operates always with HTTPS. The Alfresco documentation contains instructions on how to set up SharePoint protocol support and HTTPS. The problem is that it won't work since Alfresco ends up crashing. It will only display error page and generates hundreds of lines in the Tomcat log (mostly stack traces). Most exceptions originate from Lucene and Quartz and it's somewhat difficult to determine which errors are relevant. When I disable the changes described in the documentation Alfresco works but still generates errors in the log.
So, the question is how to configure Alfresco online edit to work with Microsoft Office via HTTPS?
The exceptions I've got are:
SEVERE: Servlet.service() for servlet Spring Surf Dispatcher Servlet threw exception java.lang.nullPointerException
Update
It seems that the Alfresco Explorer web client starts but from the beginning it has been crashing on about any action. Has done it with clean install also while Share web client has worked fine. Now after following the official instructions the Share wont' work with HTTPS.
Stack trace when starting the instance.
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:559)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:401)
at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:123)
at org.alfresco.encryption.ssl.AuthSSLProtocolSocketFactory.createSocket(AuthSSLProtocolSocketFactory.java:168)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at org.alfresco.httpclient.AbstractHttpClient.executeMethod(AbstractHttpClient.java:110)
at org.alfresco.httpclient.AbstractHttpClient.sendRemoteRequest(AbstractHttpClient.java:86)
at org.alfresco.httpclient.HttpClientFactory$HttpsClient.sendRequest(HttpClientFactory.java:307)
at org.alfresco.solr.client.SOLRAPIClient.getModelsDiff(SOLRAPIClient.java:1008)
at org.alfresco.solr.tracker.CoreTracker.trackModels(CoreTracker.java:1453)
at org.alfresco.solr.tracker.CoreTracker.trackRepository(CoreTracker.java:1126)
at org.alfresco.solr.tracker.CoreTracker.updateIndex(CoreTracker.java:483)
at org.alfresco.solr.tracker.CoreTrackerJob.execute(CoreTrackerJob.java:45)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:563)
Stack trace when trying to access Share. Also receive the above multiple times.
SEVERE: Servlet.service() for servlet Spring Surf Dispatcher Servlet threw exception
java.lang.NullPointerException
at org.alfresco.web.site.EditionInterceptor.preHandle(EditionInterceptor.java:87)
at org.springframework.web.servlet.handler.WebRequestHandlerInterceptorAdapter.preHandle(WebRequestHandlerInterceptorAdapter.java:54)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:781)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.alfresco.web.site.servlet.MTAuthenticationFilter.doFilter(MTAuthenticationFilter.java:74)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.alfresco.web.site.servlet.SSOAuthenticationFilter.doFilter(SSOAuthenticationFilter.java:307)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Alfresco documentation on SharePoint protocol via HTTPS

To enable HTTPS communication between Alfresco Community 4.0c and Microsoft Office I ended up setting Jetty to use HTTPS over the standard 7070 port. Also Alfresco Share client is using HTTPS to communicate with the web browser. However, the communications in between Alfresco repository and Share, solr and other componentes MUST NOT be HTTPS since Alfresco seems to lose connectivity and throw general error page.
By following the official instructions the setup can be done but some steps must be skipped. All else is valid but don't change the share-config-custom.xml. Also alfresco-global.properties must have Alfresco set to standard port and Share set to HTTPS protocol and port. Make sure the web server domain is not loopback address.
Don't know if this is a bug or feature. At least it will work with Office 2010.

Related

Apache Tomcat 7 The Requested Resource Is Not Available

Newbie to Tomcat 7 and everything here so apologies if this is a simple error. I've looked through other questions and answers asking the same thing and nothing seems to pertain to my issue. I've updated Tomcat 5.5 to Tomcat 7. When accessing http://localhost:80 I see the Tomcat 7 page perfectly fine so I'm guessing it's something in the URL that's being accessed.
I've installed Tomcat 7 and am trying to navigate to the URL http://localhost/otcs/cs but I keep getting the Request Resource is not available error. Below is my server.xml file.
java.lang.NullPointerException
java.lang.String.getBytes(Unknown Source)
com.opentext.servlet.client.LLServletClient.sendErrorPage(LLServletClient.java:249)
com.opentext.servlet.client.LLServletClient.sendErrorPage(LLServletClient.java:208)
com.opentext.servlet.client.LLServletClient.doGet(LLServletClient.java:122)
javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
com.opentext.servlet.filter.CompressionFilter.doFilter(CompressionFilter.java:446)
Thanks for the help and I'm happy to give more information if needed.

Unable to access Liferay 6.2 on dedicated windows cloud server

We install liferay6.2 in windows dedicated server 2008 r2. Liferay sever is working smoothly in the server but when we are trying to access it from browser then we are unable to access it. Error: server not found. In Liferay we have one portlet for video conference and it is also working fine. We can access the server through RDP(Remote Desktop) but whenever trying to access through browser fail to find the server in web.
May be this issue can be easily handle by the network admin or may be by any Liferay developer.
Does your dedicated server have a public (routed) IP address? Also, check firewalls that might block port 8080 if you have not changed the default port. As you say Liferay is running smoothly - you just can't access it - your problem is most likely rather related to the network configuration, not to Liferay itself

Proxy from Domino 8.5.3 to Connections

I am trying to setup a proxy configuration on a dev 853 domino server, so I can connect to a dev connections server from an XPage (using java).
It's an SSO environment, and both the domino server and connections server are protected by WebSEAL. I want to make server-side calls in java (using the Apache HTTP Client), so my XPages application can make a call across to the Connections server.
I followed some information I found in Niklas Heidloff's Social Enabler documentation: http://www.openntf.org/Projects/pmt.nsf/DA2F4D351A9F15B28625792D002D1F18/%24file/SocialEnabler111006.pdf
and also in here:
http://www.ibm.com/developerworks/lotus/library/inotes-full/index.html
I setup the proxy like this:
Context: /xsp/proxy/BasicProxy/
URL: https://connectionsserver.acompany.com
Actions: GET,HEAD,POST,DELETE,PUT
Cookies: -List of cookies-
Mime-types: *
Headers: User-Agent,Accept*,Content*,Authorization*,Set-Cookie
When I try the call, it gives me the following error:
2/28/13 12:34 PM: Exception Thrown
javax.servlet.ServletException: com.ibm.jsse2.util.g: No trusted certificate found
at com.ibm.domino.servlets.proxy.BasicProxy.throwServletException(BasicProxy.java:765)
at com.ibm.domino.servlets.proxy.BasicProxy.service(BasicProxy.java:357)..
...
Caused by: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.g: No trusted certificate found
I thought that passing the cookies across in this way should work (the cookies should work between both the domino-webseal and connections-webseal environments).
The error suggests that I need to import a certificate. I don't have access to the domino server to allow me to import certificates, so before I request that, I wanted to check I wasn't missing something from somewhere else.
Is there something else I am missing? Or any suggestions on doing this a different way?
Thanks,
Pam.
You have to import the certificates if they are not present. That is what the error message is indicating. There is IBM Technote 21588966 describing the necessary steps.
Furthermore (that could become the next showstopper after you sorted out SSL) you have to have a hard look how WebSeal is configured. The challenge here: WebSeal is designed to accommodate any possible backends and it is easy to get it almost working - almost as in: works for direct access via browser but fails on server-2-server or Ajax etc. The super-highly-recommended-ignore-on-your-own-risk setting for Connections/Domino is to use WebSeal's LTPA capabilities and not some ludicrous code injection.
Hth

connecting to a data source phpstorm

I'm trying to connect PHPStorm to the database on the server of my website, hosted on a Linux box at BlueHost.
In order to do this, I clicked the Data Sources tab on the right side of the screen, the + icon, and then DB Data Source a Data Source Properties dialog popped up. I entered a name for the source, set Data Source Level to Project. Then downloaded the MySQL Connector/J-5.1.18 JDBC Driver Files. This filled the JDBC Driver Class with about 6-7 classes, including com.mysql.jdbc.Driver.
The problem I believe I'm having is at the Database URL. it's asking for a jdbc:// url, which I'm not familiar with. I used the example format jdbc:mysql://[host][,failoverhost...][:port]/[database] and my username and password.
For host, I've tried localhost, and the name of the mysql server box###.bluehost.com. port 3306, and the name of the database was pretty straightforward.
I received this error when trying to test the connection...
Connection to Data Source failed
java.sql.SQLException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:344)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2332)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2369)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
in RemoteDriverImpl.connect(RemoteDriverImpl.java:27)
in LocalDataSource.getConnection(LocalDataSource.java:105)
The major difference between this question and other questions here is that this is not to connect to a wamp or mamp stack, but a remote database.
If you are using Mamp and you are facing this problem, Just open the MAMP and uncheck 'allow local access only'.
BlueHost required that I add my IP Address range to the allowed access hosts list. I am on a shared hosting account, so BlueHost seems to allow remote connections on shared hosting accounts.
I did this by clicking "Remote MySQL" next to PHPMyAdmin in the cPanel for my hosting account. The cPanel automatically detected my IP range and suggested I add it. Once I did, everything else fell into place.
Thanks to LazyOne for pointing me in the right direction.

Does Knopflerfish OSGi desktop require a connection to www.knopflerfish.org?

I'm trying a tutorial for OSGi that uses the knopflerfish desktop. Today, it hangs when I try to open a local .jar file to install it as a new bundle. It spits out a message on the console
[stderr] Error when connecting to 'http://www.knopflerfish.org/releases/3.1.0/repository.xml': java.net.ConnectException: Connection timed out: connect
and indeed, www.knopflerfish.org seems to be down today. It there no way to use this tool without a connection to the mothership?
You can still use the Knopflerfish Desktop. The missing connection should not keep you from using the desktop since you can also use it when you are working offline.
The Knopflerfish web site is/was down as mentioned in a blog post by Christer Larsson (see http://knopflerfish.blogspot.com/2011/03/knopflerfish-web-site-temporarily-down.html )

Resources