如何通过专门化函数来更改Hunchentoot会话cookie名称?

时间:2010-01-21 03:25:59

标签: common-lisp hunchentoot

我正在使用Hunchentoot,并希望更改会话cookie的名称。这是通过一个通用函数实现的,文档说要更改名称,你可以“专门化函数”。

我不确定这意味着什么。我的印象是专门的函数是在某些参数类型上调度方法。在这种特殊情况下,该函数采用服务器接受器,我不想改变它。有人可以照亮我吗?

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

这是源代码中的实现:

 (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")

1 个答案:

答案 0 :(得分:3)

创建一个子类并以这种方式专门化:

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

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

这个功能仍然需要一个接受者,现在只是你的接受者。