質問

私がしているのは、alfrescoとShareの両方をweb.xmlファイルで60分60分に設定します。

私のシナリオは

  1. 起動ワークフローページでワークフローを起動したい場合は、すべてを記入します 必要なデータが「ワークフローの開始」ボタンをクリックしないでください。
  2. セッションタイムアウト後、この「ワークフローの開始」ボタンをクリックします。
  3. 初めて、認証ボックスが開き、UserNameを要求する とパスワード
  4. 私は他のユーザーのユーザー名とパスワードを入力しました。
  5. 認証された他のユーザーを使用してワークフローを起動します。
  6. セッションタイムアウトの他の時間、認証を要求しません ボックスですが、以前に要求された認証ユーザーに行動します。

    だから私はなぜそれが起こるのかと思いますか?クッキーのためですか?

    現在4つのクッキー、すなわちalflogin、alfusername2、jssessionId、_alftestがあります。ユーザーがログアウトされている場合にのみ、alfusername2 cookieは削除され、他のものはdremained.alfloginとalfusername2 cookieの期限切れの時間は7日で、他のCookieはセッションに依存します。

    Alfresco Webスクリプトはまだセッションタイムアウトの後に使用されますか?もしそうなら、この状態を回避するにはどうすればいいですか?

役に立ちましたか?

解決

私は自分の質問に答えなければなりませんが、結果を共有したいだけです。私はあまり痕跡しなければなりません。しかし、答えはとてもシンプルです。

最初に、それはクッキーのためではありません。

この回答は、「ワークフローの開始」ボタンをクリックするだけでなく、 Share でセッションタイムアウトした後にAlfresco WebScriptを呼び出します。

Alfresco WebScriptへのすべての呼び出しは、EndPointProxyControllerorg.springframework.extensions.webscripts.servlet.mvc.EndPointProxyControllerによって行われます。

spring-webscripts-1.0.0-sources.jarメソッドセッションがない場合、BasichTtpauthChallengeが真の場合、基本認証ボックスは以下のように表示されます。

            else if (this.basicHttpAuthChallenge || descriptor.getBasicAuth())
            {
                // check for HTTP authorisation request (i.e. RSS feeds, direct links etc.)
                String authorization = req.getHeader("Authorization");
                if (authorization == null || authorization.length() == 0)
                {
                    res.setStatus(HttpServletResponse.SC_UNAUTHORIZED,
                            "No USER_ID found in session and requested endpoint requires authentication.");
                    res.setHeader("WWW-Authenticate", "Basic realm=\"Alfresco\"");

                    // no further processing as authentication is required but not provided
                    // the browser will now prompt the user for appropriate credentials
                    return null;
                }
                else
                {
// other coding
                }   
.

この状態をとして回避できます

slingshot-application-context.xml handleRequestInternal 、変更 basichttpauthchallenge to false。

のように

   <!-- Override EndPointProxyController to enable Basic HTTP auth challenge on 401 response -->
   <bean id="endpointController" class="org.springframework.extensions.webscripts.servlet.mvc.EndPointProxyController">
      <property name="cacheSeconds" value="-1" />
      <property name="useExpiresHeader"><value>true</value></property>
      <property name="useCacheControlHeader"><value>true</value></property>
      <property name="configService" ref="web.config" />
      <property name="connectorService" ref="connector.service" />
      <property name="supportedMethods"><null/></property>
      <property name="basicHttpAuthChallenge"><value>false</value></property>
   </bean>
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top