2010-01-21 1 views
4

J'utilise Hunchentoot et je voudrais changer le nom du cookie de session. Ceci est implémenté avec une fonction générique et les docs disent de changer le nom que vous pouvez "spécialiser la fonction".Comment changer un nom de cookie de session Hunchentoot en spécialisant une fonction?

Je ne suis pas vraiment sûr de ce que cela signifie ici. J'avais l'impression que la spécialisation d'une fonction consiste à envoyer une méthode sur certains types d'arguments. Dans ce cas particulier, la fonction prend l'accepteur du serveur et je ne veux pas changer cela. Quelqu'un peut-il m'éclairer à ce sujet?

L'API: http://weitz.de/hunchentoot/#session-cookie-name

Voici la mise en œuvre dans la source:

(defgeneric session-cookie-name (acceptor)           
    (:documentation "Returns the name \(a string) of the cookie \(or the    
    GET parameter) which is used to store a session on the client side.     
    The default is to use the string \"hunchentoot-session\", but you can    
    specialize this function if you want another name."))        

(defmethod session-cookie-name ((acceptor t)) 
    "hunchentoot-session") 

Répondre

3

Faire une sous-classe et de se spécialiser de cette façon:

(defclass my-acceptor (hunchentoot:acceptor)()) 

(defmethod session-cookie-name ((acceptor my-acceptor)) 
    "my-session") 

La fonction prend toujours un accepteur, il est juste votre genre d'accepteur, maintenant.

+0

Merci, cela fonctionne. Si quelqu'un expérimente, assurez-vous de définir la méthode sur hunchentoot: session-cookie-name – MarcusBooster

Questions connexes