[Seaside] Problems with Zinc and DigestAuthentication

Sven Van Caekenberghe sven at beta9.be
Mon May 21 16:00:43 UTC 2012


Hi Dave,

On 21 May 2012, at 17:37, Dav wrote:

> Hi,
> 
> There is something wrong with Zinc but I can't find how to solve it. It
> happens with Zinc and Digest Authentication, sometimes the debugger shows me
> a primitiveFailed, see the stack below 
> 
> --- The full stack ---
> ByteString class(Object)>>primitiveFailed:
> ByteString class(Object)>>primitiveFailed
> ByteString class(Behavior)>>basicNew:
> ByteString class(String class)>>new:
> ByteString(SequenceableCollection)>>copyFrom:to:
> [:fragment | 
> | tokens i key value |
> tokens := fragment trimBoth.
> 	i := tokens indexOf: $=.
> 	i > 0
> 		ifTrue: [key := tokens copyFrom: 1 to: i - 1.
> 			value := tokens copyFrom: i + 1 to: tokens size.
> 			dict
> 				at: key
> 				put: (value copyFrom: 2 to: value size - 1)]] in ZnDigestAuthenticator
> class>>parseAuthRequest:
> Array(SequenceableCollection)>>do:
> ZnDigestAuthenticator class>>parseAuthRequest:
> ZnDigestAuthenticator>>isRequestAuthenticated:
> ZnDigestAuthenticator(ZnBasicAuthenticator)>>authenticateRequest:do:
> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>authenticateRequest:do:
> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>handleRequest:
> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>executeRequestResponseLoopOn:
> [self executeRequestResponseLoopOn: stream] in [[self
> executeRequestResponseLoopOn: stream]
> 		ensure: [self log debug: 'Closing stream'.
> 			self closeSocketStream: stream]] in [[[self executeRequestResponseLoopOn:
> stream]
> 		ensure: [self log debug: 'Closing stream'.
> 			self closeSocketStream: stream]]
> 		ifCurtailed: [self log debug: 'Destroying socket'.
> 			socket destroy]] in
> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>serveConnectionsOn:
> BlockClosure>>ensure:
> [[self executeRequestResponseLoopOn: stream]
> 		ensure: [self log debug: 'Closing stream'.
> 			self closeSocketStream: stream]] in [[[self executeRequestResponseLoopOn:
> stream]
> 		ensure: [self log debug: 'Closing stream'.
> 			self closeSocketStream: stream]]
> 		ifCurtailed: [self log debug: 'Destroying socket'.
> 			socket destroy]] in
> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>serveConnectionsOn:
> BlockClosure>>ifCurtailed:
> [[[self executeRequestResponseLoopOn: stream]
> 		ensure: [self log debug: 'Closing stream'.
> 			self closeSocketStream: stream]]
> 		ifCurtailed: [self log debug: 'Destroying socket'.
> 			socket destroy]] in
> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>serveConnectionsOn:
> [self value.
> 	Processor terminateActive] in BlockClosure>>newProcess
> -------------------------------------------------------------------------------
> 
> 
> It seems when there are bots that go on the page. Can you help me please? If
> you need other info I can supply them of course
> 
> Dave

Some more context would be welcome, what specific versions of Smalltalk/Zinc are you using ?
What is your setup?
Can you get your hands on the argument to ZnDigestAuthenticator class>>parseAuthRequest: that crashes ?

Sven




More information about the seaside mailing list