{"id":26032271,"url":"https://github.com/apache/manifoldcf-integration-solr-4.x","last_synced_at":"2025-04-09T23:25:26.608Z","repository":{"id":9930081,"uuid":"11943599","full_name":"apache/manifoldcf-integration-solr-4.x","owner":"apache","description":"Mirror of Apache ManifoldCF solr-4.x Integration","archived":false,"fork":false,"pushed_at":"2025-01-27T17:24:00.000Z","size":157688,"stargazers_count":7,"open_issues_count":2,"forks_count":3,"subscribers_count":8,"default_branch":"trunk","last_synced_at":"2025-04-03T04:17:01.049Z","etag":null,"topics":["content","java","manifoldcf"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apache.png","metadata":{"files":{"readme":"README.txt","changelog":"CHANGES.txt","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-08-07T07:00:16.000Z","updated_at":"2022-11-14T12:49:22.000Z","dependencies_parsed_at":"2022-09-05T13:52:06.825Z","dependency_job_id":null,"html_url":"https://github.com/apache/manifoldcf-integration-solr-4.x","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fmanifoldcf-integration-solr-4.x","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fmanifoldcf-integration-solr-4.x/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fmanifoldcf-integration-solr-4.x/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fmanifoldcf-integration-solr-4.x/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/manifoldcf-integration-solr-4.x/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247899192,"owners_count":21014853,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["content","java","manifoldcf"],"created_at":"2025-03-06T21:57:03.301Z","updated_at":"2025-04-09T23:25:26.578Z","avatar_url":"https://github.com/apache.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements.  See the NOTICE file distributed with\n# this work for additional information regarding copyright ownership.\n# The ASF licenses this file to You under the Apache License, Version 2.0\n# (the \"License\"); you may not use this file except in compliance with\n# the License.  You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\nCompatibility\n------------\n\nThis version of this component is fully functional with Apache ManifoldCF 1.6 and\nabove.  It is backwards compatible with earlier versions as well, except for the fact\nthat two additional Solr fields are required for this plugin to work.\n\nUpgrading\n---------\n\nIf you are replacing a version of Apache ManifoldCF Plugin for Apache Solr 4.x that is\nolder than version 2.0, you must declare two additional fields (representing parent\nacls and parent deny acls), and reindex all your documents, so all six fields have the.\ncorrect values. Otherwise, the plugin will prevent you from viewing any documents.\n\nInstructions for Building Apache ManifoldCF Plugin for Apache Solr 4.x from Source\n------------------------------------------------------------------------------\n\n1. Download the Java SE 6 JDK (Java Development Kit), or greater, from\n   http://www.oracle.com/technetwork/java/index.html.\n   You will need the JDK installed, and the %JAVA_HOME%\\bin directory included\n   on your command path.  To test this, issue a \"java -version\" command from your\n   shell and verify that the Java version is 1.6 or greater.\n\n2. Download and install Maven 3.0 or later.  Maven installation and configuration\n   instructions can be found here:  http://maven.apache.org\n\n3. Building distribution assemblies\n\n   Execute the following command in order to build the distribution assemblies\n\n   mvn package assembly:assembly\n\n   The JAR packages can be found in the target folder:\n\n   target/apache-manifoldcf-solr-4.x-plugin-\u003cVERSION\u003e.jar where \u003cVERSION\u003e is the release version\n\n\nGetting Started\n---------------\n\nThere are two ways to hook up security to Solr in this package.  The first is using\na Query Parser plugin.  The second is using a Search Component.  In both cases,\nthe first step is to have ManifoldCF installed and running.  See:\nhttp://manifoldcf.apache.org/release/trunk/en_US/how-to-build-and-deploy.html\n\nThen, you will need to add fields to your Solr schema.xml file that can be used\nto contain document authorization information.  There will need to be six of these\nfields, an 'allow' field for documents, parents, and shares, and a 'deny' field for\ndocuments, parents, and shares.  For example:\n\n  \u003cfield name=\"allow_token_document\" type=\"string\" indexed=\"true\" stored=\"false\"\n    multiValued=\"true\" required=\"false\" default=\"__nosecurity__\"/\u003e\n  \u003cfield name=\"allow_token_parent\" type=\"string\" indexed=\"true\" stored=\"false\"\n    multiValued=\"true\" required=\"false\" default=\"__nosecurity__\"/\u003e\n  \u003cfield name=\"allow_token_share\" type=\"string\" indexed=\"true\" stored=\"false\"\n    multiValued=\"true\" required=\"false\" default=\"__nosecurity__\"/\u003e\n  \u003cfield name=\"deny_token_document\" type=\"string\" indexed=\"true\" stored=\"false\"\n    multiValued=\"true\" required=\"false\" default=\"__nosecurity__\"/\u003e\n  \u003cfield name=\"deny_token_parent\" type=\"string\" indexed=\"true\" stored=\"false\"\n    multiValued=\"true\" required=\"false\" default=\"__nosecurity__\"/\u003e\n  \u003cfield name=\"deny_token_share\" type=\"string\" indexed=\"true\" stored=\"false\"\n    multiValued=\"true\" required=\"false\" default=\"__nosecurity__\"/\u003e\n\nThe default value of \"__nosecurity__\" is required by this plugin, so do not forget\nto include it.\n\n\nUsing the Query Parser Plugin\n----------------------------\n\nTo set up the query parser plugin, modify your solrconfig.xml to add the query parser:\n\n  \u003c!-- ManifoldCF document security enforcement component --\u003e\n  \u003cqueryParser name=\"manifoldCFSecurity\"\n    class=\"org.apache.solr.mcf.ManifoldCFQParserPlugin\"\u003e\n    \u003cstr name=\"AuthorityServiceBaseURL\"\u003ehttp://localhost:8345/mcf-authority-service\u003c/str\u003e\n    \u003cint name=\"ConnectionPoolSize\"\u003e50\u003c/int\u003e\n  \u003c/queryParser\u003e\n\nHook up the search component in the solrconfig.xml file wherever you want it, e.g.:\n\n\u003crequestHandler name=\"search\" class=\"solr.SearchHandler\" default=\"true\"\u003e\n  \u003clst name=\"appends\"\u003e\n    \u003cstr name=\"fq\"\u003e{!manifoldCFSecurity}\u003c/str\u003e\n  \u003c/lst\u003e\n  ...\n\u003c/requestHandler\u003e\n\n\nUsing the Search Component\n----------------------------\n\nTo set up the search component, modify your solrconfig.xml to add the search component:\n\n  \u003c!-- ManifoldCF document security enforcement component --\u003e\n  \u003csearchComponent name=\"manifoldCFSecurity\"\n    class=\"org.apache.solr.mcf.ManifoldCFSearchComponent\"\u003e\n    \u003cstr name=\"AuthorityServiceBaseURL\"\u003ehttp://localhost:8345/mcf-authority-service\u003c/str\u003e\n    \u003cint name=\"ConnectionPoolSize\"\u003e50\u003c/int\u003e\n  \u003c/searchComponent\u003e\n\nHook up the search component in the solrconfig.xml file wherever you want it, e.g.:\n\n\u003crequestHandler name=\"search\" class=\"solr.SearchHandler\" default=\"true\"\u003e\n  \u003carr name=\"last-components\"\u003e\n    \u003cstr\u003emanifoldCFSecurity\u003c/str\u003e\n  \u003c/arr\u003e\n  ...\n\u003c/requestHandler\u003e\n\n\nSupplying authenticated usernames and domains\n----------------------------------------------\n\nThis component looks for the following parameters in the Solr request object:\n\nAuthenticatedUserName\nAuthenticatedUserDomain\nAuthenticatedUserName_XX\nAuthenticatedUserDomain_XX\n\nAt a minimum, AuthenticatedUserName must be present in order for the component to communicate with\nthe ManifoldCF Authority Service and obtain user access tokens.  In that case, the user identity will consist\nof one user and one authorization domain.  If AuthenticatedUserDomain is not set, then the authorization domain\nchosen will be the standard default domain, an empty string.\n\nIf you need multiple user/domain tuples for the user identity, you may pass these as parameter pairs starting with\nAuthenticatedUserName_0 and AuthenticatedUserDomain_0, and counting up as high as you like.\n\nOperation in conjunction with mod-authz-annotate\n------------------------------------------------\n\nAn optional component of ManifoldCF can be built and deployed as part of Apache - mod-authz-annotate.  The\nmod-authz-annotate module obtains the Kerberos principal from the Kerberos tickets present if mod-auth-kerb is used, and uses\nthe MCF Authority Service to look up the appropriate access tokens.  If you choose to use that architecture,\nyou will still need to use this Solr component to modify the user query.  All you have to do is the following:\n\n- Make sure you do not set AuthenticatedUserName or AuthenticatedUserName_0 in the request\n- Make sure the HTTP request from Apache to Solr translates all AAAGRP header values into \"UserToken\" parameters\n   for the Solr request\n\n\n\nLicensing\n---------\n\nApache ManifoldCF Plugin for Apache Solr 4.x is licensed under the\nApache License 2.0. See the files called LICENSE.txt and NOTICE.txt\nfor more information.\n\nCryptographic Software Notice\n-----------------------------\n\nThis distribution may include software that has been designed for use\nwith cryptographic software. The country in which you currently reside\nmay have restrictions on the import, possession, use, and/or re-export\nto another country, of encryption software. BEFORE using any encryption\nsoftware, please check your country's laws, regulations and policies\nconcerning the import, possession, or use, and re-export of encryption\nsoftware, to see if this is permitted. See \u003chttp://www.wassenaar.org/\u003e\nfor more information.\n\nThe U.S. Government Department of Commerce, Bureau of Industry and\nSecurity (BIS), has classified this software as Export Commodity\nControl Number (ECCN) 5D002.C.1, which includes information security\nsoftware using or performing cryptographic functions with asymmetric\nalgorithms. The form and manner of this Apache Software Foundation\ndistribution makes it eligible for export under the License Exception\nENC Technology Software Unrestricted (TSU) exception (see the BIS\nExport Administration Regulations, Section 740.13) for both object\ncode and source code.\n\nThe following provides more details on the included software that\nmay be subject to export controls on cryptographic software:\n\n  The Apache ManifoldCF Solr 4.x Plugin does not include any\n  implementation or usage of cryptographic software at this time.\n  \nContact\n-------\n\n  o For general information visit the main project site at\n    http://manifoldcf.apache.org\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fmanifoldcf-integration-solr-4.x","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fmanifoldcf-integration-solr-4.x","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fmanifoldcf-integration-solr-4.x/lists"}