Class GoAction

java.lang.Object
org.lastaflute.web.LastaAction
org.lastaflute.web.TypicalAction
All Implemented Interfaces:
org.codelibs.fess.mylasta.action.FessHtmlPath, org.lastaflute.web.docs.LaActionDocs, org.lastaflute.web.hook.ActionHook, org.lastaflute.web.validation.LaValidatable<org.codelibs.fess.mylasta.action.FessMessages>

public class GoAction extends FessSearchAction
Action class for handling document redirection requests. This action processes "go" requests that redirect users to specific documents while tracking click events and handling various URL types including file system paths.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    Helper for URL path mapping and transformation.

    Fields inherited from class org.lastaflute.web.TypicalAction

    GLOBAL

    Fields inherited from interface org.codelibs.fess.mylasta.action.FessHtmlPath

    path_AdminAccesstoken_AdminAccesstokenDetailsJsp, path_AdminAccesstoken_AdminAccesstokenEditJsp, path_AdminAccesstoken_AdminAccesstokenJsp, path_AdminBackup_AdminBackupJsp, path_AdminBadword_AdminBadwordDetailsJsp, path_AdminBadword_AdminBadwordDownloadJsp, path_AdminBadword_AdminBadwordEditJsp, path_AdminBadword_AdminBadwordJsp, path_AdminBadword_AdminBadwordUploadJsp, path_AdminBoostdoc_AdminBoostdocDetailsJsp, path_AdminBoostdoc_AdminBoostdocEditJsp, path_AdminBoostdoc_AdminBoostdocJsp, path_AdminCrawlinginfo_AdminCrawlinginfoDetailsJsp, path_AdminCrawlinginfo_AdminCrawlinginfoJsp, path_AdminDashboard_AdminDashboardJsp, path_AdminDataconfig_AdminDataconfigDetailsJsp, path_AdminDataconfig_AdminDataconfigEditJsp, path_AdminDataconfig_AdminDataconfigJsp, path_AdminDesign_AdminDesignEditJsp, path_AdminDesign_AdminDesignJsp, path_AdminDict_AdminDictJsp, path_AdminDictKuromoji_AdminDictKuromojiDetailsJsp, path_AdminDictKuromoji_AdminDictKuromojiDownloadJsp, path_AdminDictKuromoji_AdminDictKuromojiEditJsp, path_AdminDictKuromoji_AdminDictKuromojiJsp, path_AdminDictKuromoji_AdminDictKuromojiUploadJsp, path_AdminDictMapping_AdminDictMappingDetailsJsp, path_AdminDictMapping_AdminDictMappingDownloadJsp, path_AdminDictMapping_AdminDictMappingEditJsp, path_AdminDictMapping_AdminDictMappingJsp, path_AdminDictMapping_AdminDictMappingUploadJsp, path_AdminDictProtwords_AdminDictProtwordsDetailsJsp, path_AdminDictProtwords_AdminDictProtwordsDownloadJsp, path_AdminDictProtwords_AdminDictProtwordsEditJsp, path_AdminDictProtwords_AdminDictProtwordsJsp, path_AdminDictProtwords_AdminDictProtwordsUploadJsp, path_AdminDictStemmeroverride_AdminDictStemmeroverrideDetailsJsp, path_AdminDictStemmeroverride_AdminDictStemmeroverrideDownloadJsp, path_AdminDictStemmeroverride_AdminDictStemmeroverrideEditJsp, path_AdminDictStemmeroverride_AdminDictStemmeroverrideJsp, path_AdminDictStemmeroverride_AdminDictStemmeroverrideUploadJsp, path_AdminDictStopwords_AdminDictStopwordsDetailsJsp, path_AdminDictStopwords_AdminDictStopwordsDownloadJsp, path_AdminDictStopwords_AdminDictStopwordsEditJsp, path_AdminDictStopwords_AdminDictStopwordsJsp, path_AdminDictStopwords_AdminDictStopwordsUploadJsp, path_AdminDictSynonym_AdminDictSynonymDetailsJsp, path_AdminDictSynonym_AdminDictSynonymDownloadJsp, path_AdminDictSynonym_AdminDictSynonymEditJsp, path_AdminDictSynonym_AdminDictSynonymJsp, path_AdminDictSynonym_AdminDictSynonymUploadJsp, path_AdminDuplicatehost_AdminDuplicatehostDetailsJsp, path_AdminDuplicatehost_AdminDuplicatehostEditJsp, path_AdminDuplicatehost_AdminDuplicatehostJsp, path_AdminElevateword_AdminElevatewordDetailsJsp, path_AdminElevateword_AdminElevatewordDownloadJsp, path_AdminElevateword_AdminElevatewordEditJsp, path_AdminElevateword_AdminElevatewordJsp, path_AdminElevateword_AdminElevatewordUploadJsp, path_AdminError_AdminErrorJsp, path_AdminFailureurl_AdminFailureurlDetailsJsp, path_AdminFailureurl_AdminFailureurlJsp, path_AdminFileauth_AdminFileauthDetailsJsp, path_AdminFileauth_AdminFileauthEditJsp, path_AdminFileauth_AdminFileauthJsp, path_AdminFileconfig_AdminFileconfigDetailsJsp, path_AdminFileconfig_AdminFileconfigEditJsp, path_AdminFileconfig_AdminFileconfigJsp, path_AdminGeneral_AdminGeneralJsp, path_AdminGroup_AdminGroupDetailsJsp, path_AdminGroup_AdminGroupEditJsp, path_AdminGroup_AdminGroupJsp, path_AdminJoblog_AdminJoblogDetailsJsp, path_AdminJoblog_AdminJoblogJsp, path_AdminKeymatch_AdminKeymatchDetailsJsp, path_AdminKeymatch_AdminKeymatchEditJsp, path_AdminKeymatch_AdminKeymatchJsp, path_AdminLabeltype_AdminLabeltypeDetailsJsp, path_AdminLabeltype_AdminLabeltypeEditJsp, path_AdminLabeltype_AdminLabeltypeJsp, path_AdminLog_AdminLogJsp, path_AdminMaintenance_AdminMaintenanceJsp, path_AdminPathmap_AdminPathmapDetailsJsp, path_AdminPathmap_AdminPathmapEditJsp, path_AdminPathmap_AdminPathmapJsp, path_AdminPlugin_AdminPluginInstallpluginJsp, path_AdminPlugin_AdminPluginJsp, path_AdminRelatedcontent_AdminRelatedcontentDetailsJsp, path_AdminRelatedcontent_AdminRelatedcontentEditJsp, path_AdminRelatedcontent_AdminRelatedcontentJsp, path_AdminRelatedquery_AdminRelatedqueryDetailsJsp, path_AdminRelatedquery_AdminRelatedqueryEditJsp, path_AdminRelatedquery_AdminRelatedqueryJsp, path_AdminReqheader_AdminReqheaderDetailsJsp, path_AdminReqheader_AdminReqheaderEditJsp, path_AdminReqheader_AdminReqheaderJsp, path_AdminRole_AdminRoleDetailsJsp, path_AdminRole_AdminRoleEditJsp, path_AdminRole_AdminRoleJsp, path_AdminScheduler_AdminSchedulerDetailsJsp, path_AdminScheduler_AdminSchedulerEditJsp, path_AdminScheduler_AdminSchedulerJsp, path_AdminSearchlist_AdminSearchlistEditJsp, path_AdminSearchlist_AdminSearchlistJsp, path_AdminSearchlog_AdminSearchlogDetailsJsp, path_AdminSearchlog_AdminSearchlogJsp, path_AdminSereq_AdminSereqJsp, path_AdminStorage_AdminStorageJsp, path_AdminStorage_AdminStorageTagEditJsp, path_AdminSuggest_AdminSuggestJsp, path_AdminSysteminfo_AdminSysteminfoJsp, path_AdminTheme_AdminThemeDetailsJsp, path_AdminTheme_AdminThemeJsp, path_AdminTheme_AdminThemeUploadJsp, path_AdminUser_AdminUserDetailsJsp, path_AdminUser_AdminUserEditJsp, path_AdminUser_AdminUserJsp, path_AdminWebauth_AdminWebauthDetailsJsp, path_AdminWebauth_AdminWebauthEditJsp, path_AdminWebauth_AdminWebauthJsp, path_AdminWebconfig_AdminWebconfigDetailsJsp, path_AdminWebconfig_AdminWebconfigEditJsp, path_AdminWebconfig_AdminWebconfigJsp, path_AdminWizard_AdminWizardConfigJsp, path_AdminWizard_AdminWizardJsp, path_AdminWizard_AdminWizardStartJsp, path_AdvanceJsp, path_Chat_ChatJsp, path_Error_BadRequestJsp, path_Error_BusyJsp, path_Error_ErrorJsp, path_Error_NotFoundJsp, path_Error_RedirectJsp, path_Error_SystemJsp, path_FooterJsp, path_HeaderJsp, path_HelpJsp, path_IndexJsp, path_Login_IndexJsp, path_Login_NewpasswordJsp, path_Profile_IndexJsp, path_SearchJsp, path_SearchNoResultJsp, path_SearchOptionsJsp, path_SearchResultsJsp
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor for GoAction.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected String
    Resolves the URL fragment to append to the redirect target from the hash request parameter.
    org.lastaflute.web.response.ActionResponse
    index(GoForm form)
    Handles document redirection requests.
    protected boolean
    Checks if the given URL represents a file system path.
    protected boolean
    Validates if the URL is safe for redirection.
    protected LocalDateTime
    Resolves the click log's query-requested timestamp from the rt request parameter.

    Methods inherited from class org.lastaflute.web.TypicalAction

    calculateSqlExecutionCountLimit, createGodHandEpilogue, createGodHandMonologue, createGodHandPrologue, createGodHandResource, createTooManySqlOption, defineSqlExecutionCountDefaultLimit, filterApplicationExceptionMessageValues, handleApplicationException, myTokenGroupType, newEmbeddedMessageKeySupplier, newGodHandEpilogue, newGodHandMonologue, newGodHandPrologue, saveToken, throwVerifiedClientError, throwVerifiedIllegalTransition, verifyOrClientError, verifyOrIllegalTransition, verifyToken, verifyTokenKeep

    Methods inherited from class org.lastaflute.web.LastaAction

    asHtml, asJson, assertArgumentNotNull, asStream, asXml, doCreateValidator, doForward, doRedirect, forward, forwardById, forwardByParam, forwardWith, hash, moreUrl, movedPermanently, myValidationGroups, newActionValidator, newHtmlResponseAsForward, newHtmlResponseAsForward, newHtmlResponseAsRedirect, newJsonResponse, newStreamResponse, newUrlChain, newXmlResponse, params, redirect, redirectById, redirectByParam, redirectWith, toActionUrl, toActionUrl

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.lastaflute.web.docs.LaActionDocs

    document0_Action, document1_CallableSuperMethod, document2_OverridableSuperMethod, document3_InjectableLastaComponent, document4_InjectableQuickComponent, document8_WordDictionary

    Methods inherited from interface org.lastaflute.web.validation.LaValidatable

    throwValidationError, throwValidationErrorApi, validate, validateApi
  • Field Details

    • pathMappingHelper

      protected PathMappingHelper pathMappingHelper
      Helper for URL path mapping and transformation.
  • Constructor Details

    • GoAction

      public GoAction()
      Default constructor for GoAction.
  • Method Details

    • index

      @Execute public org.lastaflute.web.response.ActionResponse index(GoForm form) throws IOException
      Handles document redirection requests. Validates the document ID, logs click events if enabled, and redirects to the target URL or serves file content directly if configured.
      Parameters:
      form - the go form containing document ID and tracking parameters
      Returns:
      action response for redirection or content streaming
      Throws:
      IOException - if an I/O error occurs during content retrieval
    • parseQueryRequestedAt

      protected LocalDateTime parseQueryRequestedAt(String rt)
      Resolves the click log's query-requested timestamp from the rt request parameter.

      rt carries the epoch millis of the originating search, but it is a plain request parameter and therefore arbitrary user input: GoForm declares no numeric constraint on it. A value that is absent or not a number is treated as absent and falls back to the current time, so that a malformed parameter degrades click telemetry instead of failing the user's navigation with an error.

      This matches the v2 API's ClickHandler, which likewise falls back to the current time whenever rt is not a number.

      Parameters:
      rt - the raw rt parameter, epoch millis in string form (NullAllowed)
      Returns:
      the originating search time, or the current time if rt is absent or malformed
    • decodeHash

      protected String decodeHash(String hash)
      Resolves the URL fragment to append to the redirect target from the hash request parameter.

      hash carries the fragment of the originating result URL in URL-encoded form, but it is a plain request parameter and therefore arbitrary user input: GoForm declares no format constraint on it. A value that is absent, blank or not decodable is treated as absent, so that a malformed parameter drops the fragment instead of failing the user's navigation with an error.

      Parameters:
      hash - the raw hash parameter, a URL-encoded fragment (NullAllowed)
      Returns:
      the decoded fragment, or null if hash is absent, blank or malformed
    • isFileSystemPath

      protected boolean isFileSystemPath(String url)
      Checks if the given URL represents a file system path. Determines if the URL uses file system protocols that may require special handling for content serving.
      Parameters:
      url - the URL to check
      Returns:
      true if the URL is a file system path, false otherwise
    • isValidRedirectUrl

      protected boolean isValidRedirectUrl(String url)
      Validates if the URL is safe for redirection.
      Parameters:
      url - the URL to validate
      Returns:
      true if the URL is valid for redirection, false otherwise