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
This handler uses the RawResponseWriter to give client access to files inside ${solr.home}/conf
If you want to selectively restrict access some configuration files, you can list these files
in the HIDDEN invariants. 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.ere
The 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.HandlerMetricsNested classes/interfaces inherited from interface org.apache.solr.security.PermissionNameProvider
PermissionNameProvider.NameNested classes/interfaces inherited from interface org.apache.solr.core.SolrInfoBean
SolrInfoBean.Category, SolrInfoBean.Group -
Field Summary
FieldsFields inherited from class org.apache.solr.handler.RequestHandlerBase
aggregateNodeLevelMetricsEnabled, appends, defaults, httpCaching, initArgs, invariants, metrics, publishCpuTime, REQUEST_CPU_TIMER_CONTEXT, solrMetricsContext, SOURCE_ATTRFields inherited from interface org.apache.solr.security.PermissionNameProvider
ANY, NULL, valuesFields inherited from interface org.apache.solr.metrics.SolrMetricProducer
CATEGORY_ATTR, HANDLER_ATTR, NAME_ATTR, OPERATION_ATTR, PLUGIN_NAME_ATTR, RESULT_ATTR, TYPE_ATTRFields inherited from interface org.apache.solr.request.SolrRequestHandler
TYPE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic PathgetAdminFileFromFileSystem(SolrQueryRequest req, SolrQueryResponse rsp, Set<String> hiddenFiles) static StringgetAdminFileFromZooKeeper(SolrQueryRequest req, SolrQueryResponse rsp, org.apache.solr.common.cloud.SolrZkClient zkClient, Set<String> hiddenFiles) Category of this componentSimple one or two line descriptiongetPermissionName(AuthorizationContext request) static StringgetSafeContentType(String contentType) Checks content type string and returns it if it is one of allowed types.voidvoidinit(org.apache.solr.common.util.NamedList<?> args) Initializes theSolrRequestHandlerby creating threeSolrParamsnamed.initHidden(org.apache.solr.common.params.SolrParams invariants) static booleanisHiddenFile(SolrQueryRequest req, SolrQueryResponse rsp, String fnameIn, boolean reportError, Set<String> hiddenFiles) static StringMethods inherited from class org.apache.solr.handler.RequestHandlerBase
getApis, getInitArgs, getMetricsForThisRequest, getName, getPluginInfo, getRequestHandler, getSolrMetricsContext, getSolrParamsFromNamedList, getSubHandler, handleRequest, initializeMetrics, isInternalShardRequest, processErrorMetricsOnException, processReceivedException, setPluginInfoMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.solr.api.ApiSupport
getJerseyResources, registerV1, registerV2Methods inherited from interface org.apache.solr.metrics.SolrMetricProducer
close
-
Field Details
-
HIDDEN
- See Also:
-
USE_CONTENT_TYPE
- See Also:
-
-
Constructor Details
-
ShowFileRequestHandler
public ShowFileRequestHandler()
-
-
Method Details
-
init
public void init(org.apache.solr.common.util.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:
-
initHidden
-
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
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, org.apache.solr.common.cloud.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) -
getHiddenFiles
-
toForwardSlashPathString
-
getDescription
Description copied from interface:SolrInfoBeanSimple one or two line description- Specified by:
getDescriptionin interfaceSolrInfoBean- Specified by:
getDescriptionin classRequestHandlerBase
-
getCategory
Description copied from interface:SolrInfoBeanCategory of this component- Specified by:
getCategoryin interfaceSolrInfoBean- Overrides:
getCategoryin classRequestHandlerBase
-
getPermissionName
- Specified by:
getPermissionNamein interfacePermissionNameProvider
-