[Seaside] HTTPS & Seaside?
David Mitchell
david.mitchell at gmail.com
Sat Apr 25 00:28:10 UTC 2009
This is great! I'd love to see a complete example.
2009/4/24 Miguel Enrique Cobá Martínez <miguel.coba at gmail.com>:
> John Chludzinski wrote:
>>
>> Does Seaside support HTTPS (with Squeak)? ---John
>>
>>
> Seaside doesn't know anything (besides the #serverProtocol and #serverPort
> preference that just outputs 443 and https when generating urls for links)
> about encryption.
>
> This is responsibility of other player, in this case the web server in front
> of Seaside, like Apache or lighttpd.
>
> Configure your web server to use ssl and port 443 and then in your seaside
> configuration make sure that you use the correct settings and all will be
> encrypted between web server and users.
>
> For example, this is from my root class initialize class method:
>
> Main class >> initialize
> "Nombre de la aplicacion"
> application := self registerAsApplication: self appName.
>
> "Our Custom session class"
> application preferenceAt: #sessionClass put: CustomSession.
>
> "Deployment mode"
> application preferenceAt: #deploymentMode put: true.
>
> "Remove WAStandardFiles library"
> application removeLibrary: WAStandardFiles.
>
> "Session timeout"
> application preferenceAt: #sessionExpirySeconds put: 20 minutes
> asSeconds.
>
> "Base URL for resources: images, styles, etc"
> application preferenceAt: #resourceBaseUrl put: self resourcesUrl.
>
> "Server Hostname"
> application preferenceAt: #serverHostname put: self serverHostname.
>
> "Server Path"
> application preferenceAt: #serverPath put: self serverPath.
>
> "Server protocol"
> application preferenceAt: #serverProtocol put: self serverProtocol.
>
> "Server port"
> application preferenceAt: #serverPort put: self serverPort.
>
> "Error handler"
> application preferenceAt: #errorHandler put: self errorHandler.
>
> "Configuration for Magma"
> application configuration addAncestor: WAMagmaConfiguration new.
> application preferenceAt: #location put: (MagmaRemoteLocation
>
> host: self magmaHost
>
> port: self magmaPort)
>
> And
>
>
> appName
> ^ 'myapp'
>
> serverPath
> ^ ''
>
> serverPort
> ^ 443
>
> serverProtocol
> ^ #https
>
> serverHostname
> ^ self productionEnvironment
> ifTrue: [ 'example.com' ]
> ifFalse: [ 'dev.example.com' ]
>
> and in my lighttpd config, something like (isn't complete):
>
> $HTTP["host"] =~ "^www\.(.*)" {
> # no www for domains
> url.redirect = ( "^/(.*)" => "http://%1/$1" )
> }
>
>
> $HTTP["host"] == "dev.example.com" {
> $HTTP["scheme"] == "http" {
> url.redirect = ( "^/(.*)" => "https://dev.example.com/$1" )
> }
> }
>
> $SERVER["socket"] == "127.0.1.1:443" {
> ssl.engine = "enable"
> ssl.pemfile = "/etc/lighttpd/dev.example.com.pem"
> server.name = "dev.example.com"
> server.document-root = "/home/miguel/proyectos/example/website/"
>
> # We'll use the resources directory to host static files: images, styles,
> etc
>
> # Rewrite the URL
> url.rewrite-once = (
> "^/resources/(.*)" => "$0", # Unaltered
> "^/about/(.*)" => "$0", # Unaltered
> "^/(.*)" => "/seaside/myapp$1" # Rewritten
> )
>
> # Anything with seaside/myapp pass to Seaside on port 8080
> proxy.balance = "hash"
> proxy.server = (
> "/seaside/myapp" => (
> ( "host" => "127.0.0.1", "port" => 8080)
> )
> )
> }
>
> If you need more details, I can put the complete config.
>
> Cheers,
> Miguel Cobá
>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
More information about the seaside
mailing list