Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Remote Application Platform (RAP) » Send "WWW-Authenticate: Negotiate" on first RAP request
Send "WWW-Authenticate: Negotiate" on first RAP request [message #1214145] Wed, 27 November 2013 15:06 Go to next message
Eclipse User
Hi,

we need to send the error code 401 (unauthorized) to the browser with
WWW-Authenticate: Negotiate" in the header on first RAP request. We do
this in a servlet filter using the extension point. Now our problem is,
that we need to do this on every single new browser tab and on reload.

Our problem is, that we can not find a clue in the HttpServletRequest
that indicates, if this is the first request we can send the 401 for.

Using servRequest.getSession() gives us NULL on first call, but not for
every new tab or reload. Same with cookie JSESSIONID. We also looked
into the RWTServlet to get some hints and tried to use the connection ID
with request.getParameter("cid"). But this returns NULL also during
normal work in the application, so sending 401 would crash the app.

Any hints would help...

Regrads,
Markus
Re: Send "WWW-Authenticate: Negotiate" on first RAP request [message #1216654 is a reply to message #1214145] Thu, 28 November 2013 15:24 Go to previous messageGo to next message
Ralf Sternberg is currently offline Ralf Sternberg
Messages: 1290
Registered: July 2009
Senior Member

Hi Markus,

the first request is always the GET request to the entrypoint URL that
fetches the index.html. All subsequent requests to this URL are either

* POST requests that send some application/json content to the server

or

* requests to a servicehandler,
those include the request parameter "servicehandler"

Static resources are fetched from /rwt-resources, not the entrypoint URL.

Does this help?

Best regards,
Ralf

--
Ralf Sternberg

Twitter: @EclipseRAP
Blog: http://eclipsesource.com/blogs/

Professional services for RAP and RCP?
http://eclipsesource.com/services/rap/
Re: Send "WWW-Authenticate: Negotiate" on first RAP request [message #1217226 is a reply to message #1216654] Thu, 28 November 2013 20:50 Go to previous messageGo to next message
Eclipse User
Hi Ralf,

that was a great tip and it works now except that we get some JSON parse
exception occasionally (see below).

I attached the filter as we cannot figure out why there is a problem
parsing json :-(

Thanks,
Markus

]
[28.11.13 21:37:30:112 CET] 0000002a webapp E
com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E:
[Servlet Error]-[equinoxbridgeservlet]:
org.eclipse.rap.json.ParseException: Unexpected end of input at 1:0
at org.eclipse.rap.json.JsonParser.error(JsonParser.java:316)
at org.eclipse.rap.json.JsonParser.expected(JsonParser.java:310)
at org.eclipse.rap.json.JsonParser.readValue(JsonParser.java:74)
at org.eclipse.rap.json.JsonParser.parse(JsonParser.java:33)
at org.eclipse.rap.json.JsonValue.readFrom(JsonValue.java:88)
at org.eclipse.rap.json.JsonObject.readFrom(JsonObject.java:99)
at
org.eclipse.rap.rwt.internal.protocol.ProtocolUtil.getClientMessage(ProtocolUtil.java:66)
at
org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.isSessionShutdown(LifeCycleServiceHandler.java:239)
at
org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.synchronizedService(LifeCycleServiceHandler.java:77)
at
org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.service(LifeCycleServiceHandler.java:66)
at
org.eclipse.rap.rwt.engine.RWTServlet.handleValidRequest(RWTServlet.java:119)
at
org.eclipse.rap.rwt.engine.RWTServlet.handleRequest(RWTServlet.java:106)
at org.eclipse.rap.rwt.engine.RWTServlet.doPost(RWTServlet.java:99)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at
org.eclipse.rap.rwt.osgi.internal.CutOffContextPathWrapper.service(CutOffContextPathWrapper.java:106)
at
org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
at
org.eclipse.equinox.http.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:38)
at
de.cenit.ecliso.ui.auth.internal.SingleSignOnFilter.doFilter(SingleSignOnFilter.java:86)
at
org.eclipse.equinox.http.registry.internal.FilterManager$FilterWrapper.doFilter(FilterManager.java:173)
at
org.eclipse.equinox.http.servlet.internal.FilterRegistration.doFilter(FilterRegistration.java:81)
at
org.eclipse.equinox.http.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:35)
at
org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:132)
at
org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at
org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:120)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1214)
at
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
at
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
at
com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
at
com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1027)
at
com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
at
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:895)
at
com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
at
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
at
com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
at
com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at
com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at
com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at
com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1659)


Am 28.11.2013 16:24, schrieb Ralf Sternberg:
> Hi Markus,
>
> the first request is always the GET request to the entrypoint URL that
> fetches the index.html. All subsequent requests to this URL are either
>
> * POST requests that send some application/json content to the server
>
> or
>
> * requests to a servicehandler,
> those include the request parameter "servicehandler"
>
> Static resources are fetched from /rwt-resources, not the entrypoint URL.
>
> Does this help?
>
> Best regards,
> Ralf
>

package auth.internal;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.httpclient.HttpStatus;

/**
* A filter to set the negotiation header to begin the negotiation between
* browser and server. If the browser responds with a negotiation token, it will
* be stored like cookie, in the current request for further processing.
*/
public class SingleSignOnFilter implements Filter {

/**
* Http get method.
*/
private static final String HTTP_METHOD_GET = "GET";

/**
* The negotiate request value.
*/
private static final String NEGOTIATE = "Negotiate";

/**
* SPNEGO cookie key.
*/
public static final String SPNEGO_COOKIE_KEY = "SPNEGO_COOKIE";

/**
* The www authenticate challenge header.
*/
private static final String WWW_AUTH = "WWW-Authenticate";

/**
* The www authenticate response header.
*/
private static final String WWW_AUTH_RESP = "Authorization";

/**
* {@inheritDoc}
*
* @since 3.8 Creation date: 27.11.2013
*/
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}

/**
* {@inheritDoc}
*
* @since 3.8 Creation date: 27.11.2013
*/
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
boolean isSingleSignOnEnabled = true;
if (isSingleSignOnEnabled && isFirstRequest(httpServletRequest)) {
String wwwAuthResponse = httpServletRequest.getHeader(WWW_AUTH_RESP);
if (wwwAuthResponse == null) {
HttpServletResponse servletResponse = (HttpServletResponse) response;
servletResponse.setHeader(WWW_AUTH, NEGOTIATE);
servletResponse.sendError(HttpStatus.SC_UNAUTHORIZED);
servletResponse.flushBuffer();
return;
}
if (wwwAuthResponse != null && !wwwAuthResponse.isEmpty()) {
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
Cookie cookie = new Cookie(SPNEGO_COOKIE_KEY, wwwAuthResponse);
httpServletResponse.addCookie(cookie);
}
}
chain.doFilter(httpServletRequest, response);
}

/**
* Returns <code>true</code> if the given {@link HttpServletRequest} is the
* first one to an application.
*
* @param httpServletRequest
* The request to check.
* @return <code>true</code> if the given {@link HttpServletRequest} is the
* first one to an application.
* @since 3.8 Creation date: 28.11.2013
*/
private boolean isFirstRequest(HttpServletRequest httpServletRequest) {
String servletName = "myservlet";
if (httpServletRequest.getServletPath().endsWith("/" + servletName) && HTTP_METHOD_GET.equals(httpServletRequest.getMethod())) {
return true;
}
return false;
}

/**
* {@inheritDoc}
*
* @since 3.8 Creation date: 27.11.2013
*/
@Override
public void destroy() {
}
}
Re: Send &quot;WWW-Authenticate: Negotiate&quot; on first RAP request [message #1218948 is a reply to message #1217226] Fri, 29 November 2013 14:13 Go to previous messageGo to next message
Eclipse User
Fixed it ourself. I did not exclude "servicehandler" calls when
identifying the first call.

Am 28.11.2013 21:50, schrieb Markus Krüger:
> Hi Ralf,
>
> that was a great tip and it works now except that we get some JSON parse
> exception occasionally (see below).
>
> I attached the filter as we cannot figure out why there is a problem
> parsing json :-(
>
> Thanks,
> Markus
>
> ]
> [28.11.13 21:37:30:112 CET] 0000002a webapp E
> com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E:
> [Servlet Error]-[equinoxbridgeservlet]:
> org.eclipse.rap.json.ParseException: Unexpected end of input at 1:0
> at org.eclipse.rap.json.JsonParser.error(JsonParser.java:316)
> at org.eclipse.rap.json.JsonParser.expected(JsonParser.java:310)
> at org.eclipse.rap.json.JsonParser.readValue(JsonParser.java:74)
> at org.eclipse.rap.json.JsonParser.parse(JsonParser.java:33)
> at org.eclipse.rap.json.JsonValue.readFrom(JsonValue.java:88)
> at org.eclipse.rap.json.JsonObject.readFrom(JsonObject.java:99)
> at
> org.eclipse.rap.rwt.internal.protocol.ProtocolUtil.getClientMessage(ProtocolUtil.java:66)
>
> at
> org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.isSessionShutdown(LifeCycleServiceHandler.java:239)
>
> at
> org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.synchronizedService(LifeCycleServiceHandler.java:77)
>
> at
> org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.service(LifeCycleServiceHandler.java:66)
>
> at
> org.eclipse.rap.rwt.engine.RWTServlet.handleValidRequest(RWTServlet.java:119)
>
> at
> org.eclipse.rap.rwt.engine.RWTServlet.handleRequest(RWTServlet.java:106)
> at org.eclipse.rap.rwt.engine.RWTServlet.doPost(RWTServlet.java:99)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
> at
> org.eclipse.rap.rwt.osgi.internal.CutOffContextPathWrapper.service(CutOffContextPathWrapper.java:106)
>
> at
> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
>
> at
> org.eclipse.equinox.http.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:38)
>
> at
> de.cenit.ecliso.ui.auth.internal.SingleSignOnFilter.doFilter(SingleSignOnFilter.java:86)
>
> at
> org.eclipse.equinox.http.registry.internal.FilterManager$FilterWrapper.doFilter(FilterManager.java:173)
>
> at
> org.eclipse.equinox.http.servlet.internal.FilterRegistration.doFilter(FilterRegistration.java:81)
>
> at
> org.eclipse.equinox.http.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:35)
>
> at
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:132)
>
> at
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
> at
> org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:120)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
> at
> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1214)
>
> at
> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
>
> at
> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
>
> at
> com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
>
> at
> com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1027)
>
> at
> com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
>
> at
> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:895)
> at
> com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
>
> at
> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
> at
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
>
> at
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
>
> at
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
>
> at
> com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
>
> at
> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
>
> at
> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
>
> at
> com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
>
> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
> at
> com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
>
> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1659)
>
>
> Am 28.11.2013 16:24, schrieb Ralf Sternberg:
>> Hi Markus,
>>
>> the first request is always the GET request to the entrypoint URL that
>> fetches the index.html. All subsequent requests to this URL are either
>>
>> * POST requests that send some application/json content to the server
>>
>> or
>>
>> * requests to a servicehandler,
>> those include the request parameter "servicehandler"
>>
>> Static resources are fetched from /rwt-resources, not the entrypoint URL.
>>
>> Does this help?
>>
>> Best regards,
>> Ralf
>>
Re: Send &quot;WWW-Authenticate: Negotiate&quot; on first RAP request [message #1219167 is a reply to message #1218948] Mon, 02 December 2013 12:56 Go to previous messageGo to next message
Eclipse User
Hmmm, seems that we still get the parseexception under certain
circumstances. Any clues?

Am 29.11.2013 15:13, schrieb Markus Krüger:
> Fixed it ourself. I did not exclude "servicehandler" calls when
> identifying the first call.
>
> Am 28.11.2013 21:50, schrieb Markus Krüger:
>> Hi Ralf,
>>
>> that was a great tip and it works now except that we get some JSON parse
>> exception occasionally (see below).
>>
>> I attached the filter as we cannot figure out why there is a problem
>> parsing json :-(
>>
>> Thanks,
>> Markus
>>
>> ]
>> [28.11.13 21:37:30:112 CET] 0000002a webapp E
>> com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E:
>> [Servlet Error]-[equinoxbridgeservlet]:
>> org.eclipse.rap.json.ParseException: Unexpected end of input at 1:0
>> at org.eclipse.rap.json.JsonParser.error(JsonParser.java:316)
>> at org.eclipse.rap.json.JsonParser.expected(JsonParser.java:310)
>> at org.eclipse.rap.json.JsonParser.readValue(JsonParser.java:74)
>> at org.eclipse.rap.json.JsonParser.parse(JsonParser.java:33)
>> at org.eclipse.rap.json.JsonValue.readFrom(JsonValue.java:88)
>> at org.eclipse.rap.json.JsonObject.readFrom(JsonObject.java:99)
>> at
>> org.eclipse.rap.rwt.internal.protocol.ProtocolUtil.getClientMessage(ProtocolUtil.java:66)
>>
>>
>> at
>> org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.isSessionShutdown(LifeCycleServiceHandler.java:239)
>>
>>
>> at
>> org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.synchronizedService(LifeCycleServiceHandler.java:77)
>>
>>
>> at
>> org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.service(LifeCycleServiceHandler.java:66)
>>
>>
>> at
>> org.eclipse.rap.rwt.engine.RWTServlet.handleValidRequest(RWTServlet.java:119)
>>
>>
>> at
>> org.eclipse.rap.rwt.engine.RWTServlet.handleRequest(RWTServlet.java:106)
>> at org.eclipse.rap.rwt.engine.RWTServlet.doPost(RWTServlet.java:99)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
>> at
>> org.eclipse.rap.rwt.osgi.internal.CutOffContextPathWrapper.service(CutOffContextPathWrapper.java:106)
>>
>>
>> at
>> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
>>
>>
>> at
>> org.eclipse.equinox.http.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:38)
>>
>>
>> at
>> de.cenit.ecliso.ui.auth.internal.SingleSignOnFilter.doFilter(SingleSignOnFilter.java:86)
>>
>>
>> at
>> org.eclipse.equinox.http.registry.internal.FilterManager$FilterWrapper.doFilter(FilterManager.java:173)
>>
>>
>> at
>> org.eclipse.equinox.http.servlet.internal.FilterRegistration.doFilter(FilterRegistration.java:81)
>>
>>
>> at
>> org.eclipse.equinox.http.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:35)
>>
>>
>> at
>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:132)
>>
>>
>> at
>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
>>
>>
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
>> at
>> org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:120)
>>
>>
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
>> at
>> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1214)
>>
>>
>> at
>> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
>>
>>
>> at
>> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
>>
>>
>> at
>> com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
>>
>>
>> at
>> com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1027)
>>
>>
>> at
>> com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
>>
>>
>> at
>> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:895)
>> at
>> com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
>>
>>
>> at
>> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
>>
>> at
>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
>>
>>
>> at
>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
>>
>>
>> at
>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
>>
>>
>> at
>> com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
>>
>>
>> at
>> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
>>
>>
>> at
>> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
>>
>>
>> at
>> com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
>>
>>
>> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
>> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
>> at
>> com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
>>
>>
>> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
>> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1659)
>>
>>
>> Am 28.11.2013 16:24, schrieb Ralf Sternberg:
>>> Hi Markus,
>>>
>>> the first request is always the GET request to the entrypoint URL that
>>> fetches the index.html. All subsequent requests to this URL are either
>>>
>>> * POST requests that send some application/json content to the server
>>>
>>> or
>>>
>>> * requests to a servicehandler,
>>> those include the request parameter "servicehandler"
>>>
>>> Static resources are fetched from /rwt-resources, not the entrypoint
>>> URL.
>>>
>>> Does this help?
>>>
>>> Best regards,
>>> Ralf
>>>
Re: Send &quot;WWW-Authenticate: Negotiate&quot; on first RAP request [message #1219181 is a reply to message #1219167] Mon, 02 December 2013 13:51 Go to previous message
Ralf Sternberg is currently offline Ralf Sternberg
Messages: 1290
Registered: July 2009
Senior Member

Could this parse error be related to bug 411616 [1]? If yes, it should
be fixed in RC1.

Regards,
Ralf

[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=411616

--
Ralf Sternberg

Twitter: @EclipseRAP
Blog: http://eclipsesource.com/blogs/

Professional services for RAP and RCP?
http://eclipsesource.com/services/rap/
Previous Topic:Zest plugins for RAP
Next Topic:Rap Export-Version
Goto Forum:
  


Current Time: Mon Sep 22 16:17:23 GMT 2014

Powered by FUDForum. Page generated in 0.02111 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software