Update orbeon 3.9.1 to the last version

classic Classic list List threaded Threaded
25 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Update orbeon 3.9.1 to the last version

jsaiz
Hi, is there a guide or how to that explains how to update the version of a Orbeon project already done?

Thanks, greetings!
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

Erik Bruchez
Administrator
I don't think we have a proper migration guide.

Does that project use Form Builder/Form Runner, or is it custom XForms?

-Erik
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

jsaiz
The project uses Form Builder, is helpful any advice.

Thanks,

Jorge
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

jsaiz
This post was updated on .
In reply to this post by Erik Bruchez
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

Alessandro  Vernet
Administrator
In reply to this post by jsaiz
Hi Jorge,

When upgrading, if your forms are build with Form Builder, unless you made changes in Orbeon Forms itself, usually you just need to migrate your properties-local.xml. If you are using the embedded eXist, you also need to migrate the content of the eXist database, so the new version can find the forms and data. If using MySQL or Oracle, you'll need to update your schema; see the corresponding 4_3-to-4_4 DDL here:

https://github.com/orbeon/orbeon-forms/tree/master/src/resources/apps/fr/persistence/relational/ddl

Alex
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

Alessandro  Vernet
Administrator
In reply to this post by jsaiz
Hi Jorge,

Are you by any chance using Oracle for persistence? If that is the case, then this is because with 4.4 (and 4.4 only; we fixed this in 4.4.1 and the upcoming 4.5), you need 2 additional jars along your JDBC driver. You can either add those, which you can get from the URL below, or if you're on the PE version, use the 4.4.1 PE.

https://github.com/orbeon/orbeon-forms/tree/master/lib/oracle

Alex
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

jsaiz
on property:

<property as="xs:boolean" name="oxf.fr.detail.new.accept-post.*.*" value="true"/> 

in version 4.4 is obsolete, but which would adapt, I'm looking at the wiki, but do not understand the solution I've found
if you can help ...

thanks
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

Alessandro  Vernet
Administrator
Hi Jorge,

I imagine you'd like to post an initial instance to a form, is that correct? If this is the case, did you already go through the section "Enabling with Orbeon Forms 4.0" linked below?

http://wiki.orbeon.com/forms/doc/developer-guide/configuration-properties/configuration-properties-form-runner#TOC-Initial-instance-posted-to-the-New-Form-page

Alex
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

jsaiz
No, did not know, how could implement that option?
On the home page of Orbeon 4.4, paragraph form runner does not work, turning, what should I do? this is responsible for activating and making visible forms right? thank you very much
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

jsaiz
In reply to this post by Alessandro Vernet

Hi, this error with version 4.4 appears to me, any ideas? which file you must change the instance type?


2014-01-22 17:47:07,969 ERROR XFormsServer  - xforms-submit-error - setting throwable {throwable: "
+----------------------------------------------------------------------------------------------------------------------+
|An Error has Occurred                                                                                                 |
|----------------------------------------------------------------------------------------------------------------------|
|Body received with non-XML media type for replace="instance": text/plain  



Thanks!
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

Erik Bruchez
Administrator
The first question here is, which submission is failing? What this means is that there is, somewhere, a submission which expects XML, but the HTTP response provided does not return an XML content type.

Do you see more in the logs which could identify the failing submission?

-Erik
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

jsaiz
Hi,
the problem is that it does not change the file type,
to make it more clear, I attach a full log.

log.txt

I do not understand why this error

thank you very much
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

Alessandro  Vernet
Administrator
Hi Jorge,

What is happening isn't clear to me. It looks as if the persistence layer didn't return an XML document. Are you doing anything special to get this error? That is, how can we reproduce it here? If you don't see how we could reproduce this, maybe you can try to change your config to increase the log level (see section linked below), try again, and send again the log file.

http://wiki.orbeon.com/forms/doc/developer-guide/xforms-logging#TOC-Development-configuration

Alex
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

jsaiz
Hello,

finally, we are going to wait until  the versión 4.5  of Orbeon to update it from 3.9.1. But now, we have to work with the 3.9.1 versión, and we have to configure the security of the application. There are some urls that they shouldn't be accesible from outside. As an example:
http://host.es/orbeon/fr/app/QuejasSugerencias/edit/c40ebb703fe9fe5b1e16aa425d4f2378
http://host.es/orbeon/fr/app/QuejasSugerencias/view/c40ebb703fe9fe5b1e16aa425d4f2378
http://host.es/orbeon/fr/app/QuejasSugerencias/edit/7a1574bf707958112eebfc4a3f54c16e
http://host.es/orbeon/fr/app/QuejasSugerencias/view/7a1574bf707958112eebfc4a3f54c16e

Is there any way to configure this? I think in the version 4.0 and newer this is posible, but is this possible in the version 3.9.1?

Thanks and regards.
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

Alessandro  Vernet
Administrator
Hi Jorge,

Like you said, 4.x does this out-of-the-box. With 3.9, you'll need to do this either in the web.xml or on a front-end, say Apache. There are a few things you can do in the web.xml to protect URLs, but unfortunately, the web.xml syntax to match paths is very restrictive. So if you need more, you'll have to do it in Apache (e.g. with mod_rewrite), or if you don't have a separate front-end with a filter like UrlRewriteFilter.

http://wiki.orbeon.com/forms/doc/developer-guide/form-runner/access-control#TOC-With-Orbeon-Forms-3.9
https://code.google.com/p/urlrewritefilter/

Alex
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

jsaiz
Hello, I tried the option to restrict the url in the web.xml, but I still have visibility to the form ... I do not know if I may be missing something, could you show me an example configuration so that other people can not see the forms?  

This is my current setup:

 <security-constraint>
        <web-resource-collection>
            <web-resource-name>Forms history</web-resource-name>
            <url-pattern>/fr/myapp/*/*/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>Admin</role-name>
            <role-name>admin</role-name>
            <role-name>administrator</role-name>
            <role-name>Administrator</role-name>
        </auth-constraint>
    </security-constraint>


And this is an example of the url of the form:

http://myhost.es/orbeon/fr/myapp/QuejasSugerencias/view/20b81c6d5ee06a87a5db3b0aaae0e96d

Thanks and regards


Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

Alessandro  Vernet
Administrator
Hi Jorge,

You can't have multiple /* at the end of the url-path. But in your case just having /fr/myapp/* should work, if you want to match anything related to "myapp". To see exactly what you can use there, see section 12 of the servlet spec:

http://download.oracle.com/otn-pub/jcp/servlet-3_1-pr-spec/servlet-3.1-pdr.pdf

Alex
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

jsaiz
Hi, I tried those settings and effectively restricts access to all forms. The problem is that I want to restrict only those forms that are in the path "view" or "edit" and that which are under "new" should be visible for everyone.

Example:

http://myhost.es/orbeon/fr/myapp/QuejasSugerencias/view/20b81c6d5ee06a87a5db3b0aaae0e96d  --> securized

http://myhost.es/orbeon/fr/myapp/QuejasSugerencias/edit/20b81c6d5ee06a87a5db3b0aaae0e96d  --> securized

http://myhost.es/orbeon/fr/myapp/QuejasSugerencias/new?fr-language=es  --> visible for everyone


Thanks and regards.
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

jsaiz
In reply to this post by Alessandro Vernet
Hi, sorry for the inconvenience, but you have any suggestion to apply this configuration set?

Thanks and regards.
Reply | Threaded
Open this post in threaded view
|

Re: Update orbeon 3.9.1 to the last version

Alessandro  Vernet
Administrator
In reply to this post by jsaiz
Hi Jorge,

You can't do this with the syntax in the web.xml alone. You either need to upgrade to Orbeon Forms 4.x and use its built-in permissions mechanism to say that anonymous users can access the new page but require a specific role to access any other pages, or do this in a servlet filter, like UrlRewriteFilter.

http://wiki.orbeon.com/forms/doc/developer-guide/form-runner/access-control#TOC-Since-Orbeon-Forms-4.0

With UrlRewriteFilter, you could do this with the following urlrewrite.xml:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
        "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
    <rule>
        <from>/fr/[^/]*/[^/]*/(edit|summary)</from>
        <condition type="user-in-role" operator="notequal">bigboss</condition>
        <set type="status">403</set>
        <to>null</to>
    </rule>
</urlrewrite>

Here I am saying that for any app name, any form name, if the user is trying to access the edit or summary page, and it doesn't have the "bigboss" role, then return a 403 Forbidden. (Note that this won't work if you're using the review functionality, which internally does a POST to the review page. Let me know if this is something you need.) As you can see, what you have in the <form> is a regex, so you have quite a bit of flexibility there.

UrlRewriteFilter is very simple to add: just put its jar in WEB-INF/lib, and add the corresponding filter and filter mapping to your web.xml, as in:

<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    <init-param>
        <param-name>confReloadCheckInterval</param-name>
        <param-value>0</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

You'll let us know if this fits your use case.

Alex
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
12