{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-application-definition",
      "artifactVersion": "7.10",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "nuxeo-application-definition",
          "nuxeo-web-mobile-cap"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.mobile",
        "id": "grp:org.nuxeo.ecm.mobile",
        "name": "org.nuxeo.ecm.mobile",
        "parentIds": [],
        "readmes": [],
        "version": "7.10"
      },
      "bundleId": "nuxeo-application-definition",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.mobile.ApplicationRedirectServiceImpl",
          "documentation": "\n    The application definition is used to describe a new\n    application into the Nuxeo platform.\n    It is more a new type of\n    navigation than a new application, but we consider that each\n    contribution will expose a new ergonomy and new usage - so new\n    \"application\". Typical usage can\n    when you create a dedicate webengine\n    application for mobile. We may want to keep the user into\n    this\n    webengine application and redirect to this application even the user\n    click on a JSF link.\n\n    The service provide also a possibility to\n    contribute a JSP page to select a type of navigation\n    from all\n    declared or just a selection.\n\n    For instance if you have a mobile\n    application and - before user connected to the application -\n    you want\n    to let him choose to use the default UI (JSF) or the dedicated\n    mobile UI.\n\n    @author Benjamin JALON\n  \n",
          "documentationHtml": "<p>\nThe application definition is used to describe a new\napplication into the Nuxeo platform.\nIt is more a new type of\nnavigation than a new application, but we consider that each\ncontribution will expose a new ergonomy and new usage - so new\n&#34;application&#34;. Typical usage can\nwhen you create a dedicate webengine\napplication for mobile. We may want to keep the user into\nthis\nwebengine application and redirect to this application even the user\nclick on a JSF link.\n</p><p>\nThe service provide also a possibility to\ncontribute a JSP page to select a type of navigation\nfrom all\ndeclared or just a selection.\n</p><p>\nFor instance if you have a mobile\napplication and - before user connected to the application -\nyou want\nto let him choose to use the default UI (JSF) or the dedicated\nmobile UI.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.application.definition.service",
              "descriptors": [
                "org.nuxeo.ecm.mobile.ApplicationDefinitionDescriptor"
              ],
              "documentation": "\n      In this extension you will contribute a new application entry that\n      will be caracterized by a name, a baseURL of the application, a relative\n      path to a dedicate login page and logout page, a request handler to select the type\n      of request that must be redirect to this application and a order.\n\n      Let see that:\n\n      <code>\n    <application disable=\"false\" name=\"app1\" order=\"10\">\n        <applicationRelativePath>site/app1</applicationRelativePath>\n        <loginPage>/auth/login</loginPage>\n        <logoutPage>/auth/logout</logoutPage>\n        <requestHandlerName>MyRequestHandler</requestHandlerName>\n    </application>\n</code>\n\n\n      Here we define a new application named \"app1\". We define the base\n      url of the application.\n      So the full URL to reach it will be:\n      <code>\n        server/${NuxeoContextPath}/site/app1.\n      </code>\n\n      This seems to be, here, a webengine application. And logout page\n      will be reachable here:\n      <code>\n        server/${NuxeoContextPath}/site/app1/auth/login\n      </code>\n\n      We have the same things with the logout page. The last but not\n      least, the RequestHandler will be the object called to check\n      if the request is a candidate to be redirected to the application.\n      This handler must implements the org.nuxeo.ecm.mobile.handler.RequestHandler\n      interface.\n\n      You just have to implement, in fact this following method:\n      <code>\n        /**\n        * return true if the request is a candidate for the Application\n        described into\n        * the {@code ApplicationDescriptor}.\n        */\n        public boolean isRequestRedirectedToApplication(\n        HttpServletRequest request);\n      </code>\n\n\n      If this method return true for a given request, the browser will be redirected to\n      the baseURL of the application with the initial uri into the\n      ApplicationConstant#TARGET_URL_PARAMETER parameter into the redirected URL.\n\n      You can for instance return true each time you detect that browser user\n      agent is a mobile browser (you have the MobileRequestHandler implementing that),\n      Like that all mobile browser will be redirected to app1.\n\n      For instance if you call\n      http://server/nuxeo/nxdoc/default/1239134098234023@view_documents\n      is\n      called and the handler return true, you be redirected to:\n\n      <code>\n        http://server/nuxeo/site/app1?targetURL=%2Fnuxeo%2Fnxdoc%2Fdefault%2F1239134098234023%40view_documents\n      </code>\n\n\n      For the login and logout page, becareful to unprotect resources\n      you are using to generate the page.\n      The login page must post to the \"${baseURL}/nxstartup.faces\"\", \n      login module will do the authentication stuff and will redirect \n      to the initial url request for you. baseURL is by default /nuxeo, \n      in the webengine context you can use a relative path (becareful of reverse proxy)\n      I mean if you use jquery library from here:\n      <code>\n        http://server/nuxeo/scripts/jquery.js\n      </code>\n\n      As you will be redirected to app1 this will not work. So if you do\n      that think to contribute to the\n      PluggableAuthenticationService to declare your open URL for your external resources, this service\n      will also skip the redirect.\n\n      Order of the application will let you organize the call order of handlers by the service.\n\n      Last thing, becareful to have an efficient handler, as this code can be\n      called many times. If you have handler that called a webservice, that is long, etc. This\n      is a bad idea.\n\n      About the login page you just have to create into the target url\n      describe into your contribution a form that post user_name and user_password value to the same page.\n      Authenticator of the service will do the authentication and will after redirect to the target URL.\n\n      You can optionally aslo describe the base URL of resources of your application like that:\n      <code>\n    <application disable=\"false\" name=\"app1\" order=\"10\">\n        <applicationRelativePath>site/app1</applicationRelativePath>\n        <loginPage>/auth/login</loginPage>\n        <logoutPage>/auth/logout</logoutPage>\n        <requestHandlerName>myHandler</requestHandlerName>\n        <resources>\n            <resourcesBaseURL>/site/skin/app1</resourcesBaseURL>\n            <resourcesBaseURL>/nuxeo/resources</resourcesBaseURL>\n        </resources>\n    </application>\n</code>\n\n      Like that request to resources of your application will not be redirected to the base url.\n      If your resources are under the base url of your application, this parameter is not needed.\n\n\n      You have already different RequestHandler implemented (Mobile and Anonymous handler)\n\n    \n",
              "documentationHtml": "<p>\nIn this extension you will contribute a new application entry that\nwill be caracterized by a name, a baseURL of the application, a relative\npath to a dedicate login page and logout page, a request handler to select the type\nof request that must be redirect to this application and a order.\n</p><p>\nLet see that:\n</p><p>\n</p><pre><code>    &lt;application disable&#61;&#34;false&#34; name&#61;&#34;app1&#34; order&#61;&#34;10&#34;&gt;\n        &lt;applicationRelativePath&gt;site/app1&lt;/applicationRelativePath&gt;\n        &lt;loginPage&gt;/auth/login&lt;/loginPage&gt;\n        &lt;logoutPage&gt;/auth/logout&lt;/logoutPage&gt;\n        &lt;requestHandlerName&gt;MyRequestHandler&lt;/requestHandlerName&gt;\n    &lt;/application&gt;\n</code></pre><p>\nHere we define a new application named &#34;app1&#34;. We define the base\nurl of the application.\nSo the full URL to reach it will be:\n</p><p></p><pre><code>        server/${NuxeoContextPath}/site/app1.\n</code></pre><p>\nThis seems to be, here, a webengine application. And logout page\nwill be reachable here:\n</p><p></p><pre><code>        server/${NuxeoContextPath}/site/app1/auth/login\n</code></pre><p>\nWe have the same things with the logout page. The last but not\nleast, the RequestHandler will be the object called to check\nif the request is a candidate to be redirected to the application.\nThis handler must implements the org.nuxeo.ecm.mobile.handler.RequestHandler\ninterface.\n</p><p>\nYou just have to implement, in fact this following method:\n</p><p></p><pre><code>        /**\n        * return true if the request is a candidate for the Application\n        described into\n        * the {&#64;code ApplicationDescriptor}.\n        */\n        public boolean isRequestRedirectedToApplication(\n        HttpServletRequest request);\n</code></pre><p>\nIf this method return true for a given request, the browser will be redirected to\nthe baseURL of the application with the initial uri into the\nApplicationConstant#TARGET_URL_PARAMETER parameter into the redirected URL.\n</p><p>\nYou can for instance return true each time you detect that browser user\nagent is a mobile browser (you have the MobileRequestHandler implementing that),\nLike that all mobile browser will be redirected to app1.\n</p><p>\nFor instance if you call\nhttp://server/nuxeo/nxdoc/default/1239134098234023&#64;view_documents\nis\ncalled and the handler return true, you be redirected to:\n</p><p>\n</p><pre><code>        http://server/nuxeo/site/app1?targetURL&#61;%2Fnuxeo%2Fnxdoc%2Fdefault%2F1239134098234023%40view_documents\n</code></pre><p>\nFor the login and logout page, becareful to unprotect resources\nyou are using to generate the page.\nThe login page must post to the &#34;${baseURL}/nxstartup.faces&#34;&#34;,\nlogin module will do the authentication stuff and will redirect\nto the initial url request for you. baseURL is by default /nuxeo,\nin the webengine context you can use a relative path (becareful of reverse proxy)\nI mean if you use jquery library from here:\n</p><p></p><pre><code>        http://server/nuxeo/scripts/jquery.js\n</code></pre><p>\nAs you will be redirected to app1 this will not work. So if you do\nthat think to contribute to the\nPluggableAuthenticationService to declare your open URL for your external resources, this service\nwill also skip the redirect.\n</p><p>\nOrder of the application will let you organize the call order of handlers by the service.\n</p><p>\nLast thing, becareful to have an efficient handler, as this code can be\ncalled many times. If you have handler that called a webservice, that is long, etc. This\nis a bad idea.\n</p><p>\nAbout the login page you just have to create into the target url\ndescribe into your contribution a form that post user_name and user_password value to the same page.\nAuthenticator of the service will do the authentication and will after redirect to the target URL.\n</p><p>\nYou can optionally aslo describe the base URL of resources of your application like that:\n</p><p></p><pre><code>    &lt;application disable&#61;&#34;false&#34; name&#61;&#34;app1&#34; order&#61;&#34;10&#34;&gt;\n        &lt;applicationRelativePath&gt;site/app1&lt;/applicationRelativePath&gt;\n        &lt;loginPage&gt;/auth/login&lt;/loginPage&gt;\n        &lt;logoutPage&gt;/auth/logout&lt;/logoutPage&gt;\n        &lt;requestHandlerName&gt;myHandler&lt;/requestHandlerName&gt;\n        &lt;resources&gt;\n            &lt;resourcesBaseURL&gt;/site/skin/app1&lt;/resourcesBaseURL&gt;\n            &lt;resourcesBaseURL&gt;/nuxeo/resources&lt;/resourcesBaseURL&gt;\n        &lt;/resources&gt;\n    &lt;/application&gt;\n</code></pre><p>\nLike that request to resources of your application will not be redirected to the base url.\nIf your resources are under the base url of your application, this parameter is not needed.\n</p><p>\nYou have already different RequestHandler implemented (Mobile and Anonymous handler)\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.mobile/nuxeo-application-definition/org.nuxeo.ecm.application.definition.service/ExtensionPoints/org.nuxeo.ecm.application.definition.service--applicationDefinition",
              "id": "org.nuxeo.ecm.application.definition.service--applicationDefinition",
              "label": "applicationDefinition (org.nuxeo.ecm.application.definition.service)",
              "name": "applicationDefinition",
              "version": "7.10"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.application.definition.service",
              "descriptors": [
                "org.nuxeo.ecm.mobile.RequestHandlerDescriptor"
              ],
              "documentation": "\n      In this extension point you will contribute the definition of your handler that implements\n      the logic of redirection to your application. Interface to implement for this requestHandler\n      is just for a given request do Nuxeo will redirect the user to the given application.\n\n      <code>\n    <requestHandler disable=\"false\" name=\"MobileWithCookieRequestHandler\">\n        <implementation>org.nuxeo.ecm.mobile.handler.MobileWithCookieRequestHandler</implementation>\n        <properties>\n            <property name=\"skippedURLPattern\">(.*)/nxfile/(.*)|(.*)/nxbigfile/(.*)</property>\n        </properties>\n    </requestHandler>\n</code>\n\n      And so you will have to implement the interface given by org.nuxeo.ecm.mobile.handler.RequestHandler.\n      Means just to implement this following methods:\n      <code>\n         public RequestHandler init(Map&lt;String, String&gt; properties);\n\n         public boolean isRequestRedirectedToApplication(HttpServletRequest request);\n\n         public boolean isRequestRedirectedToApplicationLoginForm(HttpServletRequest request);\n      </code>\n",
              "documentationHtml": "<p>\nIn this extension point you will contribute the definition of your handler that implements\nthe logic of redirection to your application. Interface to implement for this requestHandler\nis just for a given request do Nuxeo will redirect the user to the given application.\n</p><p>\n</p><pre><code>    &lt;requestHandler disable&#61;&#34;false&#34; name&#61;&#34;MobileWithCookieRequestHandler&#34;&gt;\n        &lt;implementation&gt;org.nuxeo.ecm.mobile.handler.MobileWithCookieRequestHandler&lt;/implementation&gt;\n        &lt;properties&gt;\n            &lt;property name&#61;&#34;skippedURLPattern&#34;&gt;(.*)/nxfile/(.*)|(.*)/nxbigfile/(.*)&lt;/property&gt;\n        &lt;/properties&gt;\n    &lt;/requestHandler&gt;\n</code></pre><p>\nAnd so you will have to implement the interface given by org.nuxeo.ecm.mobile.handler.RequestHandler.\nMeans just to implement this following methods:\n</p><p></p><pre><code>         public RequestHandler init(Map&amp;lt;String, String&amp;gt; properties);\n\n         public boolean isRequestRedirectedToApplication(HttpServletRequest request);\n\n         public boolean isRequestRedirectedToApplicationLoginForm(HttpServletRequest request);\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.mobile/nuxeo-application-definition/org.nuxeo.ecm.application.definition.service/ExtensionPoints/org.nuxeo.ecm.application.definition.service--requestHandlers",
              "id": "org.nuxeo.ecm.application.definition.service--requestHandlers",
              "label": "requestHandlers (org.nuxeo.ecm.application.definition.service)",
              "name": "requestHandlers",
              "version": "7.10"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.mobile/nuxeo-application-definition/org.nuxeo.ecm.application.definition.service",
          "name": "org.nuxeo.ecm.application.definition.service",
          "requirements": [],
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.application.definition.service",
              "hierarchyPath": "/grp:org.nuxeo.ecm.mobile/nuxeo-application-definition/org.nuxeo.ecm.application.definition.service/Services/org.nuxeo.ecm.mobile.ApplicationDefinitionService",
              "id": "org.nuxeo.ecm.mobile.ApplicationDefinitionService",
              "overriden": false,
              "version": "7.10"
            }
          ],
          "version": "7.10",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.application.definition.service\">\n\n  <documentation>\n    The application definition is used to describe a new\n    application into the Nuxeo platform.\n    It is more a new type of\n    navigation than a new application, but we consider that each\n    contribution will expose a new ergonomy and new usage - so new\n    \"application\". Typical usage can\n    when you create a dedicate webengine\n    application for mobile. We may want to keep the user into\n    this\n    webengine application and redirect to this application even the user\n    click on a JSF link.\n\n    The service provide also a possibility to\n    contribute a JSP page to select a type of navigation\n    from all\n    declared or just a selection.\n\n    For instance if you have a mobile\n    application and - before user connected to the application -\n    you want\n    to let him choose to use the default UI (JSF) or the dedicated\n    mobile UI.\n\n    @author Benjamin JALON\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.mobile.ApplicationRedirectServiceImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.mobile.ApplicationDefinitionService\" />\n  </service>\n\n  <extension-point name=\"applicationDefinition\">\n    <documentation>\n      In this extension you will contribute a new application entry that\n      will be caracterized by a name, a baseURL of the application, a relative\n      path to a dedicate login page and logout page, a request handler to select the type\n      of request that must be redirect to this application and a order.\n\n      Let see that:\n\n      <code>\n        <application name=\"app1\" order=\"10\" disable=\"false\">\n          <applicationRelativePath>site/app1</applicationRelativePath>\n          <loginPage>/auth/login</loginPage>\n          <logoutPage>/auth/logout</logoutPage>\n          <requestHandlerName>MyRequestHandler</requestHandlerName>\n        </application>\n      </code>\n\n      Here we define a new application named \"app1\". We define the base\n      url of the application.\n      So the full URL to reach it will be:\n      <code>\n        server/${NuxeoContextPath}/site/app1.\n      </code>\n      This seems to be, here, a webengine application. And logout page\n      will be reachable here:\n      <code>\n        server/${NuxeoContextPath}/site/app1/auth/login\n      </code>\n      We have the same things with the logout page. The last but not\n      least, the RequestHandler will be the object called to check\n      if the request is a candidate to be redirected to the application.\n      This handler must implements the org.nuxeo.ecm.mobile.handler.RequestHandler\n      interface.\n\n      You just have to implement, in fact this following method:\n      <code>\n        /**\n        * return true if the request is a candidate for the Application\n        described into\n        * the {@code ApplicationDescriptor}.\n        */\n        public boolean isRequestRedirectedToApplication(\n        HttpServletRequest request);\n      </code>\n\n      If this method return true for a given request, the browser will be redirected to\n      the baseURL of the application with the initial uri into the\n      ApplicationConstant#TARGET_URL_PARAMETER parameter into the redirected URL.\n\n      You can for instance return true each time you detect that browser user\n      agent is a mobile browser (you have the MobileRequestHandler implementing that),\n      Like that all mobile browser will be redirected to app1.\n\n      For instance if you call\n      http://server/nuxeo/nxdoc/default/1239134098234023@view_documents\n      is\n      called and the handler return true, you be redirected to:\n\n      <code>\n        http://server/nuxeo/site/app1?targetURL=%2Fnuxeo%2Fnxdoc%2Fdefault%2F1239134098234023%40view_documents\n      </code>\n\n      For the login and logout page, becareful to unprotect resources\n      you are using to generate the page.\n      The login page must post to the \"${baseURL}/nxstartup.faces\"\", \n      login module will do the authentication stuff and will redirect \n      to the initial url request for you. baseURL is by default /nuxeo, \n      in the webengine context you can use a relative path (becareful of reverse proxy)\n      I mean if you use jquery library from here:\n      <code>\n        http://server/nuxeo/scripts/jquery.js\n      </code>\n      As you will be redirected to app1 this will not work. So if you do\n      that think to contribute to the\n      PluggableAuthenticationService to declare your open URL for your external resources, this service\n      will also skip the redirect.\n\n      Order of the application will let you organize the call order of handlers by the service.\n\n      Last thing, becareful to have an efficient handler, as this code can be\n      called many times. If you have handler that called a webservice, that is long, etc. This\n      is a bad idea.\n\n      About the login page you just have to create into the target url\n      describe into your contribution a form that post user_name and user_password value to the same page.\n      Authenticator of the service will do the authentication and will after redirect to the target URL.\n\n      You can optionally aslo describe the base URL of resources of your application like that:\n      <code>\n        <application name=\"app1\" order=\"10\" disable=\"false\">\n          <applicationRelativePath>site/app1</applicationRelativePath>\n          <loginPage>/auth/login</loginPage>\n          <logoutPage>/auth/logout</logoutPage>\n          <requestHandlerName>myHandler</requestHandlerName>\n          <resources>\n            <resourcesBaseURL>/site/skin/app1</resourcesBaseURL>\n            <resourcesBaseURL>/nuxeo/resources</resourcesBaseURL>\n          </resources>\n        </application>\n      </code>\n      Like that request to resources of your application will not be redirected to the base url.\n      If your resources are under the base url of your application, this parameter is not needed.\n\n\n      You have already different RequestHandler implemented (Mobile and Anonymous handler)\n\n    </documentation>\n    <object class=\"org.nuxeo.ecm.mobile.ApplicationDefinitionDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"requestHandlers\">\n    <documentation>\n      In this extension point you will contribute the definition of your handler that implements\n      the logic of redirection to your application. Interface to implement for this requestHandler\n      is just for a given request do Nuxeo will redirect the user to the given application.\n\n      <code>\n        <requestHandler name=\"MobileWithCookieRequestHandler\"\n          disable=\"false\">\n          <implementation>org.nuxeo.ecm.mobile.handler.MobileWithCookieRequestHandler</implementation>\n          <properties>\n            <property name=\"skippedURLPattern\">(.*)/nxfile/(.*)|(.*)/nxbigfile/(.*)</property>\n          </properties>\n        </requestHandler>\n      </code>\n      And so you will have to implement the interface given by org.nuxeo.ecm.mobile.handler.RequestHandler.\n      Means just to implement this following methods:\n      <code>\n         public RequestHandler init(Map&lt;String, String&gt; properties);\n\n         public boolean isRequestRedirectedToApplication(HttpServletRequest request);\n\n         public boolean isRequestRedirectedToApplicationLoginForm(HttpServletRequest request);\n      </code>\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.mobile.RequestHandlerDescriptor\" />\n  </extension-point>\n</component>",
          "xmlFileName": "/OSGI-INF/application-definition-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--authenticators",
              "hierarchyPath": "/grp:org.nuxeo.ecm.mobile/nuxeo-application-definition/org.nuxeo.web.mobile.authenticator.contrib/Contributions/org.nuxeo.web.mobile.authenticator.contrib--authenticators",
              "id": "org.nuxeo.web.mobile.authenticator.contrib--authenticators",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "7.10",
              "xml": "<extension point=\"authenticators\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n\n    <authenticationPlugin class=\"org.nuxeo.ecm.mobile.filter.ApplicationFormAuthenticator\" enabled=\"true\" name=\"FORM_WEBENGINE_APPLICATION_AUTH\">\n      <needStartingURLSaving>true</needStartingURLSaving>\n      <parameters>\n        <parameter name=\"UsernameKey\">user_name</parameter>\n        <parameter name=\"PasswordKey\">user_password</parameter>\n      </parameters>\n    </authenticationPlugin>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--chain",
              "hierarchyPath": "/grp:org.nuxeo.ecm.mobile/nuxeo-application-definition/org.nuxeo.web.mobile.authenticator.contrib/Contributions/org.nuxeo.web.mobile.authenticator.contrib--chain",
              "id": "org.nuxeo.web.mobile.authenticator.contrib--chain",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "7.10",
              "xml": "<extension point=\"chain\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n\n    <authenticationChain>\n      <plugins>\n        <plugin>BASIC_AUTH</plugin>\n        <plugin>FORM_WEBENGINE_APPLICATION_AUTH</plugin>\n        <plugin>FORM_AUTH</plugin>\n        <plugin>ANONYMOUS_AUTH</plugin>\n        <plugin>WEBSERVICES_AUTH</plugin>\n      </plugins>\n    </authenticationChain>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.mobile/nuxeo-application-definition/org.nuxeo.web.mobile.authenticator.contrib",
          "name": "org.nuxeo.web.mobile.authenticator.contrib",
          "requirements": [],
          "services": [],
          "version": "7.10",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.web.mobile.authenticator.contrib\">\n\n  <require>org.nuxeo.ecm.platform.ui.web.auth.WebEngineConfig</require>\n\n  <extension\n      target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\"\n      point=\"authenticators\">\n\n    <authenticationPlugin name=\"FORM_WEBENGINE_APPLICATION_AUTH\" enabled=\"true\"\n        class=\"org.nuxeo.ecm.mobile.filter.ApplicationFormAuthenticator\">\n      <needStartingURLSaving>true</needStartingURLSaving>\n      <parameters>\n        <parameter name=\"UsernameKey\">user_name</parameter>\n        <parameter name=\"PasswordKey\">user_password</parameter>\n      </parameters>\n    </authenticationPlugin>\n\n  </extension>\n\n  <extension\n      target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\"\n      point=\"chain\">\n\n    <authenticationChain>\n      <plugins>\n        <plugin>BASIC_AUTH</plugin>\n        <plugin>FORM_WEBENGINE_APPLICATION_AUTH</plugin>\n        <plugin>FORM_AUTH</plugin>\n        <plugin>ANONYMOUS_AUTH</plugin>\n        <plugin>WEBSERVICES_AUTH</plugin>\n      </plugins>\n    </authenticationChain>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/application-authentication-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-application-definition-7.10.jar",
      "groupId": "org.nuxeo.ecm.mobile",
      "hierarchyPath": "/grp:org.nuxeo.ecm.mobile/nuxeo-application-definition",
      "id": "nuxeo-application-definition",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: hudson\r\nBuild-Jdk: 1.8.0_60\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 1.0-SNAPSHOT\r\nBundle-Vendor: Nuxeo\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Name: nuxeo-application-definition\r\nNuxeo-Component: OSGI-INF/application-authentication-contrib.xml,OSGI-\r\n INF/application-definition-service.xml\r\nBundle-SymbolicName: nuxeo-application-definition\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\n\r\n",
      "packages": [],
      "requirements": [],
      "version": "7.10"
    }
  ],
  "creationDate": 1664792867649,
  "key": "Nuxeo Platform LTS 2015-7.10",
  "name": "Nuxeo Platform LTS 2015",
  "operations": [],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1447023600000,
  "version": "7.10"
}