The hunchentoot-single-signon Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The hunchentoot-single-signon Reference Manual

This is the hunchentoot-single-signon Reference Manual, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 12:00:07 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

hunchentoot-single-signon

This package implements SPNEGO implementation for Hunchentoot.

The main dependency is on the package cl-gss, which uses is an FFI wrapper around the GSSAPI library.

Usage information

First, make sure you have a keytab file that contains the service credentials for the principal HTTP/domain where domain is the fully qualified domain name of the HTTP server.

Before starting the Hunchentoot server, register the keytab with GSSAPI using the following function:

(cl-gss:krb5-register-acceptor-identity file)

Once this is done, every Hunchentoot handler function needs to be wrapped in a call to SPNEGO-AUTH. Here is a simple example. Assuming the original content of the handler looked like this:

(defun handler-function ()
  (setf (hunchentoot:content-type*) "text/plain")
  "You should be authenticated here")

When enabling single sign-on, the content should look like this:

(defun handler-function ()
  (hunchentoot-single-signon:spnego-auth #'(lambda (name)
                                             (setf (hunchentoot:content-type*) "text/plain")
                                             "You should be authenticated here")))

The callback is called with an instance of CL-GSS:NAME which can be used for authorisation. You can retrieve the name of the princpial using the function CL-GSS:NAME-TO-STRING. Check the cl-gss package for further information.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 hunchentoot-single-signon

Author

Elias Martenson <lokedhs@gmail.com>

License

BSD

Description

Implementation of SPNEGO authentication for Hunchentoot

Dependencies
Source

hunchentoot-single-signon.asd (file)

Component

src (module)


Next: , Previous: , Up: Top   [Contents][Index]

3 Modules

Modules are listed depth-first from the system components tree.


Previous: , Up: Modules   [Contents][Index]

3.1 hunchentoot-single-signon/src

Parent

hunchentoot-single-signon (system)

Location

src/

Components

Next: , Previous: , Up: Top   [Contents][Index]

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.1 hunchentoot-single-signon.asd

Location

hunchentoot-single-signon.asd

Systems

hunchentoot-single-signon (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.2 hunchentoot-single-signon/src/package.lisp

Parent

src (module)

Location

src/package.lisp

Packages

hunchentoot-single-signon

Internal Definitions

*compile-decl* (special variable)


Previous: , Up: Lisp files   [Contents][Index]

4.1.3 hunchentoot-single-signon/src/spnego.lisp

Dependency

package.lisp (file)

Parent

src (module)

Location

src/spnego.lisp

Exported Definitions

spnego-auth (function)


Next: , Previous: , Up: Top   [Contents][Index]

5 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

5.1 hunchentoot-single-signon

Implementation of SPNEGO authentication for Hunchentoot

Source

package.lisp (file)

Use List

common-lisp

Exported Definitions

spnego-auth (function)

Internal Definitions

*compile-decl* (special variable)


Next: , Previous: , Up: Top   [Contents][Index]

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Exported definitions


Previous: , Up: Exported definitions   [Contents][Index]

6.1.1 Functions

Function: spnego-auth BODY-HANDLER-FN &optional FAILED-AUTH-FN

Performs SPNEGO authentication. This function is intended to be called from a Hunchentoot handler, and the implementation assumes that no further Hunchentoot-related processing will take place after this call.

BODY-HANDLER-FN is a function that will be called after successful authentication. It is called with an instance of CL-GSS:NAME representing the identify of the user.

If given, FAILED-AUTH-FN is a function that will be called when authentication fails. Note that before this function is called, the return code has already been set to the correct value and should not be changed. The purpose of this function is to provide a more useful error message, and also possibly display a normal username and password form to allow users a different method to log in.

Package

hunchentoot-single-signon

Source

spnego.lisp (file)


Previous: , Up: Definitions   [Contents][Index]

6.2 Internal definitions


Previous: , Up: Internal definitions   [Contents][Index]

6.2.1 Special variables

Special Variable: *compile-decl*
Package

hunchentoot-single-signon

Source

package.lisp (file)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   F   H   L   M  
Index Entry  Section

F
File, Lisp, hunchentoot-single-signon.asd: The hunchentoot-single-signon<dot>asd file
File, Lisp, hunchentoot-single-signon/src/package.lisp: The hunchentoot-single-signon/src/package<dot>lisp file
File, Lisp, hunchentoot-single-signon/src/spnego.lisp: The hunchentoot-single-signon/src/spnego<dot>lisp file

H
hunchentoot-single-signon.asd: The hunchentoot-single-signon<dot>asd file
hunchentoot-single-signon/src: The hunchentoot-single-signon/src module
hunchentoot-single-signon/src/package.lisp: The hunchentoot-single-signon/src/package<dot>lisp file
hunchentoot-single-signon/src/spnego.lisp: The hunchentoot-single-signon/src/spnego<dot>lisp file

L
Lisp File, hunchentoot-single-signon.asd: The hunchentoot-single-signon<dot>asd file
Lisp File, hunchentoot-single-signon/src/package.lisp: The hunchentoot-single-signon/src/package<dot>lisp file
Lisp File, hunchentoot-single-signon/src/spnego.lisp: The hunchentoot-single-signon/src/spnego<dot>lisp file

M
Module, hunchentoot-single-signon/src: The hunchentoot-single-signon/src module

Jump to:   F   H   L   M  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   F   S  
Index Entry  Section

F
Function, spnego-auth: Exported functions

S
spnego-auth: Exported functions

Jump to:   F   S  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *  
S  
Index Entry  Section

*
*compile-decl*: Internal special variables

S
Special Variable, *compile-decl*: Internal special variables

Jump to:   *  
S  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   H   P   S  
Index Entry  Section

H
hunchentoot-single-signon: The hunchentoot-single-signon system
hunchentoot-single-signon: The hunchentoot-single-signon package

P
Package, hunchentoot-single-signon: The hunchentoot-single-signon package

S
System, hunchentoot-single-signon: The hunchentoot-single-signon system

Jump to:   H   P   S