私は自分の質問に答えなければなりませんが、私は自分の結果を共有したいと思います。私は多くを追跡する必要があります。しかし、答えはとても簡単です。
第一に、それはクッキーのせいではありません。
この回答は、[ワークフローの開始]ボタンをクリックするだけでなく、共有でセッションがタイムアウトした後に屋外のWebスクリプトを呼び出すためのものです。
屋外ウェブスクリプトへのすべての呼び出しは、特にで行われEndPointProxyController
ます。org.springframework.extensions.webscripts.servlet.mvc.EndPointProxyController
spring-webscripts-1.0.0-sources.jar
メソッドではhandleRequestInternal
、セッションがなく、basicHttpAuthChallengeがtrueの場合、基本認証ボックスは次のように表示されます。
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でendpointController
、basicHttpAuthChallengeを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>