Package org.apache.solr.handler.admin
Class ShowFileRequestHandler
- java.lang.Object
-
- org.apache.solr.handler.RequestHandlerBase
-
- org.apache.solr.handler.admin.ShowFileRequestHandler
-
- All Implemented Interfaces:
AutoCloseable,ApiSupport,SolrInfoBean,NestedRequestHandler,SolrMetricProducer,SolrRequestHandler,PermissionNameProvider
public class ShowFileRequestHandler extends RequestHandlerBase implements PermissionNameProvider
This handler uses the RawResponseWriter to give client access to files inside ${solr.home}/confIf you want to selectively restrict access some configuration files, you can list these files in the
HIDDENinvariants. For example to hide synonyms.txt and anotherfile.txt, you would register:
<requestHandler name="/admin/file" class="org.apache.solr.handler.admin.ShowFileRequestHandler" > <lst name="defaults"> <str name="echoParams">explicit</str> </lst> <lst name="invariants"> <str name="hidden">synonyms.txt</str> <str name="hidden">anotherfile.txt</str> <str name="hidden">*</str> </lst> </requestHandler>At present, there is only explicit file names (including path) or the glob '*' are supported. Variants like '*.xml' are NOT supported.ereThe ShowFileRequestHandler uses the
RawResponseWriter(wt=raw) to return file contents. If you need to use a different writer, you will need to change the registered invariant param for wt.If you want to override the contentType header returned for a given file, you can set it directly using:
USE_CONTENT_TYPE. For example, to get a plain text version of schema.xml, try:http://localhost:8983/solr/admin/file?file=schema.xml&contentType=text/plain
- Since:
- solr 1.3
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.solr.handler.RequestHandlerBase
RequestHandlerBase.HandlerMetrics
-
Nested classes/interfaces inherited from interface org.apache.solr.security.PermissionNameProvider
PermissionNameProvider.Name
-
Nested classes/interfaces inherited from interface org.apache.solr.core.SolrInfoBean
SolrInfoBean.Category, SolrInfoBean.Group
-
-
Field Summary
Fields Modifier and Type Field Description static StringHIDDENprotected Set<String>hiddenFilesstatic StringUSE_CONTENT_TYPE-
Fields inherited from class org.apache.solr.handler.RequestHandlerBase
appends, defaults, httpCaching, initArgs, invariants, metrics, solrMetricsContext
-
Fields inherited from interface org.apache.solr.security.PermissionNameProvider
ANY, NULL, values
-
Fields inherited from interface org.apache.solr.request.SolrRequestHandler
TYPE
-
-
Constructor Summary
Constructors Constructor Description ShowFileRequestHandler()
-
Method Summary
-
Methods inherited from class org.apache.solr.handler.RequestHandlerBase
getApis, getInitArgs, getMetricsForThisRequest, getName, getPluginInfo, getRequestHandler, getSolrMetricsContext, getSolrParamsFromNamedList, getSubHandler, handleRequest, initializeMetrics, setPluginInfo
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.solr.api.ApiSupport
registerV1, registerV2
-
Methods inherited from interface org.apache.solr.metrics.SolrMetricProducer
close
-
-
-
-
Field Detail
-
HIDDEN
public static final String HIDDEN
- See Also:
- Constant Field Values
-
USE_CONTENT_TYPE
public static final String USE_CONTENT_TYPE
- See Also:
- Constant Field Values
-
-
Method Detail
-
init
public void init(NamedList<?> args)
Description copied from class:RequestHandlerBaseInitializes theSolrRequestHandlerby creating threeSolrParamsnamed.table of parameters Name Description defaults Contains all of the named arguments contained within the list element named "defaults". appends Contains all of the named arguments contained within the list element named "appends". invariants Contains all of the named arguments contained within the list element named "invariants". Example:
<lst name="defaults"> <str name="echoParams">explicit</str> <str name="qf">text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0</str> <str name="mm">2<-1 5<-2 6<90%</str> <str name="bq">incubationdate_dt:[* TO NOW/DAY-1MONTH]^2.2</str> </lst> <lst name="appends"> <str name="fq">inStock:true</str> </lst> <lst name="invariants"> <str name="facet.field">cat</str> <str name="facet.field">manu_exact</str> <str name="facet.query">price:[* TO 500]</str> <str name="facet.query">price:[500 TO *]</str> </lst>
- Specified by:
initin interfaceSolrRequestHandler- Overrides:
initin classRequestHandlerBase- Parameters:
args- TheNamedListto initialize from- See Also:
RequestHandlerBase.handleRequest(org.apache.solr.request.SolrQueryRequest, org.apache.solr.response.SolrQueryResponse),RequestHandlerBase.handleRequestBody(org.apache.solr.request.SolrQueryRequest, org.apache.solr.response.SolrQueryResponse),SolrPluginUtils.setDefaults(org.apache.solr.request.SolrQueryRequest, org.apache.solr.common.params.SolrParams, org.apache.solr.common.params.SolrParams, org.apache.solr.common.params.SolrParams),See also the example solrconfig.xml located in the Solr codebase (example/solr/conf).
-
initHidden
public static Set<String> initHidden(SolrParams invariants)
-
handleRequestBody
public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws InterruptedException, org.apache.zookeeper.KeeperException, IOException
- Specified by:
handleRequestBodyin classRequestHandlerBase- Throws:
InterruptedExceptionorg.apache.zookeeper.KeeperExceptionIOException
-
getSafeContentType
public static String getSafeContentType(String contentType)
Checks content type string and returns it if it is one of allowed types. The allowed types are all standard mime types. If an HTML type is requested, it is instead returned as text/plain
-
isHiddenFile
public static boolean isHiddenFile(SolrQueryRequest req, SolrQueryResponse rsp, String fnameIn, boolean reportError, Set<String> hiddenFiles)
-
getAdminFileFromZooKeeper
public static String getAdminFileFromZooKeeper(SolrQueryRequest req, SolrQueryResponse rsp, SolrZkClient zkClient, Set<String> hiddenFiles) throws org.apache.zookeeper.KeeperException, InterruptedException
- Throws:
org.apache.zookeeper.KeeperExceptionInterruptedException
-
getAdminFileFromFileSystem
public static Path getAdminFileFromFileSystem(SolrQueryRequest req, SolrQueryResponse rsp, Set<String> hiddenFiles)
-
getDescription
public String getDescription()
Description copied from interface:SolrInfoBeanSimple one or two line description- Specified by:
getDescriptionin interfaceSolrInfoBean- Specified by:
getDescriptionin classRequestHandlerBase
-
getCategory
public SolrInfoBean.Category getCategory()
Description copied from interface:SolrInfoBeanCategory of this component- Specified by:
getCategoryin interfaceSolrInfoBean- Overrides:
getCategoryin classRequestHandlerBase
-
getPermissionName
public PermissionNameProvider.Name getPermissionName(AuthorizationContext request)
- Specified by:
getPermissionNamein interfacePermissionNameProvider
-
-